我想列出窗口使用其Windows Indexing Service編制索引的所有文件。使用Delphi獲取Windows中所有索引文件的列表
指定的文件擴展名是可以接受的。
例如:我正在開發一個軟件,用於呈現用戶媒體,如照片和視頻。我目前使用下面的自定義過程來查找文件自己:
function FindAllFiles_Safe(aDirectory, aFilter: string; aIncludeSubDirs: boolean): string;
{$IFDEF DCC}
var TD: TDirectory;
SO: TSearchOption;
DF: TStringDynArray;
i: integer;
sl: TStringList;
MaskArray: TStringDynArray;
Predicate: TDirectory.TFilterPredicate;
{$ENDIF}
begin
{$IFDEF FPC}
result:=FindAllFiles(aDirectory,aFilter,aIncludeSubDirs).text;
{$ENDIF}
{$IFDEF DCC}
MaskArray := SplitString(aFilter, ';');
if aIncludeSubDirs=true then SO:=TSearchOption.soAllDirectories;
Predicate :=
function(const Path: string; const SearchRec: TSearchRec): Boolean
var Mask: string;
begin
for Mask in MaskArray do
if MatchesMask(SearchRec.Name, Mask) then
exit(True);
exit(False);
end;
//DF:=TD.GetFiles(aDirectory, Predicate, SO);
DF:=TD.GetFiles(aDirectory, SO, Predicate);
if length(DF)=0 then exit;
sl:=TStringList.Create;
for i := 0 to length(DF)-1 do sl.Add(DF[i]);
result:=sl.Text;
sl.Free;
{$ENDIF}
end;
是否有訪問Windows已經索引文件的方法嗎?
我想利用Windows索引服務來快速檢索文件,而不是浪費資源,如果Windows已經做過之前。
[枚舉Windows中特定類型的文件]的可能重複(http://stackoverflow.com/questions/19272920/enumerating-files-of-specific-type-in-windows) – Deltics 2014-11-04 03:48:13