Lines Matching refs:fi

33 static bool FindFile_KeepDots(NFile::NFind::CFileInfo &fi, const FString &path, bool followLink)

35 const bool res = fi.Find(path, followLink);
60 fi.Name = p;
66 const NFind::CFileInfo &fi)
69 CDirItem di(fi);
75 VECTOR_ADD_NEW_OBJECT (Items, CDirItem(fi, phyParent, logParent, secureIndex))
77 if (fi.IsDir())
80 else if (fi.IsAltStream)
83 Stat.AltStreamsSize += fi.Size;
89 Stat.FilesSize += fi.Size;
268 NFind::CFileInfo fi;
273 if (!enumerator.Next(fi, found))
277 files.Add(fi);
306 NFind::CFileInfo fi;
307 if (!enumerator.Fill_FileInfo(de, fi, !SymLinks))
308 // if (!fi.Find_AfterEnumerator(path))
317 files.Add(fi);
343 const NFind::CFileInfo &fi = files[i];
345 const NFind::CFileInfo &fi = files[i];
347 NFind::CFileInfo fi;
351 if (!fi.Find_AfterEnumerator(path))
356 fi.Name = di.Name;
361 if (CanIncludeItem(fi.IsDir()))
367 RINOK(AddSecurityItem(phyPrefix + fi.Name, secureIndex))
370 AddDirFileInfo(phyParent, logParent, secureIndex, fi);
378 if (fi.IsDir())
380 const FString name2 = fi.Name + FCHAR_PATH_SEPARATOR;
423 NFind::CFileInfo fi;
425 if (!FindFile_KeepDots(fi, phyPath FOLLOW_LINK_PARAM))
442 if (CanIncludeItem(fi.IsDir()))
452 if (phyPrefix_isAltStreamPrefix && fi.IsAltStream)
454 const int pos = fi.Name.Find(FChar(':'));
456 fi.Name.DeleteFrontal((unsigned)pos + 1);
459 AddDirFileInfo(phyParentCur, logParent, secureIndex, fi);
462 if (fi.IsDir())
464 const FString name2 = fi.Name + FCHAR_PATH_SEPARATOR;
522 const NFind::CFileInfo &fi,
525 const FString &phyPath, // with (fi.Name), without tail slash for folders
526 const UStringVector &addParts, // with (fi.Name), prefix parts from curNode
555 NFind::CFileInfo fi2 = fi;
572 HRESULT CDirItems::SetLinkInfo(CDirItem &dirItem, const NFind::CFileInfo &fi,
579 if (!fi.HasReparsePoint() || fi.IsAltStream)
581 if (!fi.IsPosixLink())
585 const FString path = phyPrefix + fi.Name;
590 Stat.FilesSize -= fi.Size;
604 const NFind::CFileInfo &fi,
607 const UStringVector &addParts, // additional parts from curNode, without (fi.Name)
611 const UString name = fs2us(fi.Name);
616 if (curNode.CheckPathToRoot(false, newParts, !fi.IsDir()))
628 if (curNode.CheckPathToRoot(true, newParts, !fi.IsDir()))
638 if (dirItems.CanIncludeItem(fi.IsDir()))
644 RINOK(dirItems.AddSecurityItem(phyPrefix + fi.Name, secureIndex))
650 dirItems.AddDirFileInfo(phyParent, logParent, secureIndex, fi);
659 if (fi.IsDir())
670 RINOK(dirItems.SetLinkInfo(dirItem, fi, phyPrefix))
678 RINOK(EnumerateAltStreams(fi, curNode, phyParent, logParent,
679 phyPrefix + fi.Name, // with (fi.Name)
680 newParts, // with (fi.Name)
690 if (!fi.IsPosixLink()) // posix link can follow to dir
692 if (!fi.IsDir())
713 if (fi.IsPosixLink())
720 if (dirItems.SymLinks && fi.HasReparsePoint())
735 *nextNode, phyParent, logParent, fi.Name,
736 phyPrefix, // without (fi.Name)
737 newParts, // relative to (*nextNode). (*nextNode + newParts) includes (fi.Name)
871 NFind::CFileInfo fi;
875 fi.SetAsDir();
876 fi.Name = us2fs(name);
880 if (!FindFile_KeepDots(fi, fullPath FOLLOW_LINK_PARAM2))
896 const bool isDir = fi.IsDir();
905 pathParts.Add(fs2us(fi.Name));
911 if (dirItems.CanIncludeItem(fi.IsDir()))
921 dirItems.AddDirFileInfo(phyParent, logParent, secureIndex, fi);
928 RINOK(dirItems.SetLinkInfo(dirItem, fi, phyPrefix))
937 pathParts.Add(fs2us(fi.Name));
938 RINOK(EnumerateAltStreams(fi, curNode, phyParent, logParent,
940 pathParts, // including (fi.Name)
951 if (!fi.IsPosixLink()) // posix link can follow to dir
969 if (fi.IsPosixLink())
978 if (fi.HasReparsePoint())
987 newParts.Add(name); // don't change it to fi.Name. It's for shortnames support
990 RINOK(EnumerateDirItems_Spec(*nextNode, phyParent, logParent, fi.Name, phyPrefix,
1001 NFind::CFileInfo fi;
1018 // we don't want to call fi.Find() for root folder or virtual folder
1025 fi.SetAsDir();
1026 fi.Name = us2fs(nextNode.Name);
1030 if (!FindFile_KeepDots(fi, fullPath FOLLOW_LINK_PARAM2))
1038 if (!fi.IsDir())
1045 RINOK(EnumerateDirItems_Spec(nextNode, phyParent, logParent, fi.Name, phyPrefix,
1087 NFind::CFileInfo fi;
1088 fi.SetAsDir();
1089 fi.Name = driveName;
1091 RINOK(EnumerateForItem(fi, curNode, phyParent, logParent, phyPrefix,
1112 // const NFind::CFileInfo &fi = files[i];
1114 NFind::CFileInfo &fi = files[i];
1118 if (!fi.Find_AfterEnumerator(path))
1123 fi.Name = di.Name;
1134 const NFind::CFileInfo &fi = files[i];
1136 const NFind::CFileInfo &fi = files[i];
1138 NFind::CFileInfo fi;
1142 if (!fi.Find_AfterEnumerator(path))
1147 fi.Name = di.Name;
1152 RINOK(EnumerateForItem(fi, curNode, phyParent, logParent, phyPrefix,
1223 NFind::CFileInfo fi;
1224 if (fi.Fill_From_ByHandleFileInfo(phyPath)) // item.IsDir()
1226 item.Size = fi.Size;
1227 item.CTime = fi.CTime;
1228 item.ATime = fi.ATime;
1229 item.MTime = fi.MTime;
1230 item.Attrib = fi.Attrib;
1567 NFind::CFileInfo fi;
1573 if (fi.Find(path))
1574 name = fs2us(fi.Name);