private static void AddResult(ref WIN32_FIND_DATA data, IList<string> directories, IList<string> files) { if (IsFile(ref data)) files.Add(data.cFileName); else if (IsDir(ref data)) directories.Add(data.cFileName); }
internal static extern bool FindNextFile(SafeFindHandle hndFindFile, out WIN32_FIND_DATA lpFindFileData);
internal static extern SafeFindHandle FindFirstFile(string fileName, out WIN32_FIND_DATA data);
internal static bool IsFile(ref WIN32_FIND_DATA data) { return 0 == (data.dwFileAttributes & 16); }
internal static bool IsDir(ref WIN32_FIND_DATA data) { return (data.dwFileAttributes & 16) != 0 && !data.cFileName.Equals(".") && !data.cFileName.Equals(".."); }
private static void AddResult(ref WIN32_FIND_DATA data, List<DirectoryEntry> entries) { var entry = new DirectoryEntry(data.cFileName, (FILE_ATTRIBUTE)data.dwFileAttributes); if (SkipSpecialEntry(entry)) return; entries.Add(entry); }
internal static extern bool FindNextFile(SafeFindHandle hndFindFile, out WIN32_FIND_DATA lpFindFileData);
internal static extern SafeFindHandle FindFirstFile(string fileName, out WIN32_FIND_DATA data);
internal static unsafe extern SafeFindHandle FindFirstFileEx( char* pszPattern, FINDEX_INFO_LEVELS fInfoLevelId, out WIN32_FIND_DATA lpFindFileData, FINDEX_SEARCH_OPS fSearchOp, IntPtr lpSearchFilter, FINDEX_ADDITIONAL_FLAGS dwAdditionalFlags);