#ifndef _RAR_FINDDATA_ #define _RAR_FINDDATA_ enum FINDDATA_FLAGS { FDDF_SECONDDIR=1 // Second encounter of same directory in SCAN_GETDIRSTWICE ScanTree mode. }; struct FindData { wchar Name[NM]; uint64 Size; uint FileAttr; bool IsDir; bool IsLink; RarTime mtime; RarTime ctime; RarTime atime; #ifdef _WIN_ALL FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; #endif uint Flags; bool Error; }; class FindFile { private: #ifdef _WIN_ALL static HANDLE Win32Find(HANDLE hFind,const wchar *Mask,FindData *fd); #endif wchar FindMask[NM]; bool FirstCall; #ifdef _WIN_ALL HANDLE hFind; #else DIR *dirp; #endif public: FindFile(); ~FindFile(); void SetMask(const wchar *Mask); bool Next(FindData *fd,bool GetSymLink=false); static bool FastFind(const wchar *FindMask,FindData *fd,bool GetSymLink=false); }; #endif