Lines Matching refs:fi
111 #define WIN_FD_TO_MY_FI(fi, fd) \
112 fi.Attrib = fd.dwFileAttributes; \
113 fi.CTime = fd.ftCreationTime; \
114 fi.ATime = fd.ftLastAccessTime; \
115 fi.MTime = fd.ftLastWriteTime; \
116 fi.Size = (((UInt64)fd.nFileSizeHigh) << 32) + fd.nFileSizeLow; \
117 /* fi.ReparseTag = fd.dwReserved0; */ \
118 fi.IsAltStream = false; \
119 fi.IsDevice = false;
123 fi.ObjectID = fd.dwOID;
125 fi.ReparseTag = fd.dwReserved0;
129 static void Convert_WIN32_FIND_DATA_to_FileInfo(const WIN32_FIND_DATAW &fd, CFileInfo &fi)
131 WIN_FD_TO_MY_FI(fi, fd)
132 fi.Name = us2fs(fd.cFileName);
134 // fi.ShortName = us2fs(fd.cAlternateFileName);
139 static void Convert_WIN32_FIND_DATA_to_FileInfo(const WIN32_FIND_DATA &fd, CFileInfo &fi)
141 WIN_FD_TO_MY_FI(fi, fd)
142 fi.Name = fas2fs(fd.cFileName);
144 // fi.ShortName = fas2fs(fd.cAlternateFileName);
194 bool CFindFile::FindFirst(CFSTR path, CFileInfo &fi)
205 Convert_WIN32_FIND_DATA_to_FileInfo(fd, fi);
224 Convert_WIN32_FIND_DATA_to_FileInfo(fd, fi);
229 bool CFindFile::FindNext(CFileInfo &fi)
237 Convert_WIN32_FIND_DATA_to_FileInfo(fd, fi);
245 Convert_WIN32_FIND_DATA_to_FileInfo(fd, fi);
698 CFileInfo fi;
699 if (!enumerator.NextAny(fi))
701 if (fi.Name.IsEqualTo_Ascii_NoCase("."))
704 CTime = fi.CTime;
705 ATime = fi.ATime;
706 MTime = fi.MTime;
707 Attrib = fi.Attrib;
708 Size = fi.Size;
740 CFileInfo fi;
741 return fi.Find(name) && !fi.IsDir();
746 CFileInfo fi;
747 return fi.Find_FollowLink(name) && !fi.IsDir();
752 CFileInfo fi;
753 return fi.Find(name, followLink) && fi.IsDir();
758 CFileInfo fi;
759 return fi.Find(name);
769 bool CEnumerator::NextAny(CFileInfo &fi)
772 return _findFile.FindNext(fi);
774 return _findFile.FindFirst(_wildcard, fi);
777 bool CEnumerator::Next(CFileInfo &fi)
781 if (!NextAny(fi))
783 if (!fi.IsDots())
788 bool CEnumerator::Next(CFileInfo &fi, bool &found)
793 if (!NextAny(fi))
795 if (!fi.IsDots())
803 if (Next(fi))
1207 bool CEnumerator::NextAny(CDirEntry &fi, bool &found)
1233 fi.iNode = de->d_ino;
1236 fi.Type = de->d_type;
1241 // fi.Type = DT_UNKNOWN; // for debug
1242 if (fi.Type == DT_UNKNOWN)
1247 fi.Type = DT_DIR;
1254 fi.Attrib = FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_UNIX_EXTENSION | ((UInt32)(S_IFDIR) << 16);
1256 fi.Attrib = FILE_ATTRIBUTE_UNIX_EXTENSION | ((UInt32)(de->d_type) << (16 + 12));
1258 fi.Name = de->d_name;
1261 printf("\nCEnumerator::NextAny; len = %d %s \n", (int)fi.Name.Len(), fi.Name.Ptr());
1262 for (unsigned i = 0; i < fi.Name.Len(); i++)
1272 bool CEnumerator::Next(CDirEntry &fi, bool &found)
1278 if (!NextAny(fi, found))
1282 if (!fi.IsDots())
1288 if (fi.Find_DontFill_Name(path))
1300 if (!Next(fi, found))