11 {
12 int num = returnedEnd;
14 {
15 return false;
16 }
17 bool flag = false;
20 {
21 if (name[i] == '/' || name[i] == '\\' || (notImplicitFile && (name[i] == ':' || name[i] == '?' || name[i] == '#')))
22 {
24 break;
25 }
26 if (name[i] == '.')
27 {
29 break;
30 }
31 if (char.IsLetter(name[i]) || name[i] == '-' || name[i] == '_')
32 {
33 flag = true;
34 }
35 else if (name[i] < '0' || name[i] > '9')
36 {
37 return false;
38 }
39 }
40 if (!flag)
41 {
42 return false;
43 }
45 {
46 if (name[i] == '/' || name[i] == '\\' || (notImplicitFile && (name[i] == ':' || name[i] == '?' || name[i] == '#')))
47 {
49 break;
50 }
51 if (name[i] == '.')
52 {
53 if (!flag || (i - 1 >=
start && name[i - 1] ==
'.'))
54 {
55 return false;
56 }
57 flag = false;
58 continue;
59 }
60 if (name[i] == '-' || name[i] == '_')
61 {
62 if (!flag)
63 {
64 return false;
65 }
66 continue;
67 }
68 if (char.IsLetter(name[i]) || (name[i] >= '0' && name[i] <= '9'))
69 {
70 if (!flag)
71 {
72 flag = true;
73 }
74 continue;
75 }
76 return false;
77 }
78 if (i - 1 >=
start && name[i - 1] ==
'.')
79 {
80 flag = true;
81 }
82 if (!flag)
83 {
84 return false;
85 }
86 returnedEnd = num;
87 return true;
88 }