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

◆ MoveNext()

unsafe bool System.IO.Enumeration.FileSystemEnumerator< TResult >.MoveNext ( )
inlineinherited

Implements System.Collections.IEnumerator.

Definition at line 216 of file FileSystemEnumerator.cs.

217 {
218 if (_lastEntryFound)
219 {
220 return false;
221 }
222 FileSystemEntry entry = default(FileSystemEntry);
223 lock (_lock)
224 {
225 if (_lastEntryFound)
226 {
227 return false;
228 }
229 while (true)
230 {
232 if (_lastEntryFound)
233 {
234 return false;
235 }
236 FileSystemEntry.Initialize(ref entry, _entry, _currentPath.AsSpan(), _rootDirectory.AsSpan(), _originalRootDirectory.AsSpan());
237 if ((_entry->FileAttributes & _options.AttributesToSkip) != 0)
238 {
239 continue;
240 }
241 if ((_entry->FileAttributes & FileAttributes.Directory) != 0)
242 {
243 if (_entry->FileName.Length <= 2 && _entry->FileName[0] == '.' && (_entry->FileName.Length != 2 || _entry->FileName[1] == '.'))
244 {
246 {
247 continue;
248 }
249 }
251 {
252 string text = Path.Join(_currentPath.AsSpan(), _entry->FileName);
254 if (intPtr != IntPtr.Zero)
255 {
256 try
257 {
258 if (_pending == null)
259 {
261 }
263 }
264 catch
265 {
267 throw;
268 }
269 }
270 }
271 }
273 {
274 break;
275 }
276 }
278 return true;
279 }
280 }
static bool CloseHandle(IntPtr handle)
Queue<(IntPtr Handle, string Path, int RemainingDepth)> _pending
unsafe Interop.NtDll.FILE_FULL_DIR_INFORMATION * _entry
virtual bool ShouldIncludeEntry(ref FileSystemEntry entry)
unsafe IntPtr CreateRelativeDirectoryHandle(ReadOnlySpan< char > relativePath, string fullPath)
virtual bool ShouldRecurseIntoEntry(ref FileSystemEntry entry)
TResult TransformEntry(ref FileSystemEntry entry)

References System.IO.Enumeration.FileSystemEnumerator< TResult >._current, System.IO.Enumeration.FileSystemEnumerator< TResult >._currentPath, System.IO.Enumeration.FileSystemEnumerator< TResult >._entry, System.IO.Enumeration.FileSystemEnumerator< TResult >._lastEntryFound, System.IO.Enumeration.FileSystemEnumerator< TResult >._lock, System.IO.Enumeration.FileSystemEnumerator< TResult >._options, System.IO.Enumeration.FileSystemEnumerator< TResult >._originalRootDirectory, System.IO.Enumeration.FileSystemEnumerator< TResult >._pending, System.IO.Enumeration.FileSystemEnumerator< TResult >._remainingRecursionDepth, System.IO.Enumeration.FileSystemEnumerator< TResult >._rootDirectory, System.IO.EnumerationOptions.AttributesToSkip, Interop.Kernel32.CloseHandle(), System.IO.Enumeration.FileSystemEnumerator< TResult >.CreateRelativeDirectoryHandle(), System.IO.Enumeration.FileSystemEnumerator< TResult >.FindNextEntry(), System.IO.Enumeration.FileSystemEntry.Initialize(), System.IO.Path.Join(), System.IO.EnumerationOptions.RecurseSubdirectories, System.IO.EnumerationOptions.ReturnSpecialDirectories, System.IO.Enumeration.FileSystemEnumerator< TResult >.ShouldIncludeEntry(), System.IO.Enumeration.FileSystemEnumerator< TResult >.ShouldRecurseIntoEntry(), System.text, System.IO.Enumeration.FileSystemEnumerator< TResult >.TransformEntry(), and System.IntPtr.Zero.