Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ TranslateWin32Expression()

static string System.IO.Enumeration.FileSystemName.TranslateWin32Expression ( string? expression)
inlinestatic

Definition at line 11 of file FileSystemName.cs.

12 {
13 if (string.IsNullOrEmpty(expression) || expression == "*" || expression == "*.*")
14 {
15 return "*";
16 }
17 bool flag = false;
18 Span<char> initialBuffer = stackalloc char[32];
19 ValueStringBuilder valueStringBuilder = new ValueStringBuilder(initialBuffer);
20 int length = expression.Length;
21 for (int i = 0; i < length; i++)
22 {
23 char c = expression[i];
24 switch (c)
25 {
26 case '.':
27 flag = true;
28 if (i >= 1 && i == length - 1 && expression[i - 1] == '*')
29 {
30 valueStringBuilder[valueStringBuilder.Length - 1] = '<';
31 }
32 else if (i < length - 1 && (expression[i + 1] == '?' || expression[i + 1] == '*'))
33 {
34 valueStringBuilder.Append('"');
35 }
36 else
37 {
38 valueStringBuilder.Append('.');
39 }
40 break;
41 case '?':
42 flag = true;
43 valueStringBuilder.Append('>');
44 break;
45 default:
46 valueStringBuilder.Append(c);
47 break;
48 }
49 }
50 if (!flag)
51 {
52 return expression;
53 }
54 return valueStringBuilder.ToString();
55 }

References System.Text.ValueStringBuilder.Append(), System.length, and System.Text.ValueStringBuilder.ToString().

Referenced by System.IO.Enumeration.FileSystemEnumerableFactory.NormalizeInputs().