查詢目錄或檔案的幾種方法

2021-03-31 08:56:30 字數 3524 閱讀 5262

(a)指定檔案查詢

function tform1.findspecfile(sdirectory,fname:string):boolean;

var sr: tsearchrec  ;

begin

if findfirst(sdirectory+fname, faanyfile, sr) = 0 then

begin

findclose(sr);

result:=true;

end else begin

result:=false;

end;

end;

(b)檔名包含查詢

procedure tform1.findlikefile(sdirectory,likename:string);

var  sr: tsearchrec;

begin

if findfirst(sdirectory+'*.*', faanyfile, sr) = 0 then

begin

repeat

if pos(likename,lowercase(sr.name))>0 then begin

if (sr.attr and fadirectory)=0 then

listbox1.items.add('檔案:'+sdirectory+sr.name)

else

listbox1.items.add('目錄:'+sdirectory+sr.name)  ;

end;

until findnext(sr) <> 0;

findclose(sr);

end;

end;

(1)查詢指定副檔名的檔案

procedure tform1.button1click(sender: tobject);

var  sr: tsearchrec;

begin

listbox1.items.clear ;

if findfirst('d:/work/*.xls', faanyfile, sr) = 0 then

begin

repeat

if pos('.xls',lowercase(sr.name))>0 then

listbox1.items.add(sr.name)  ;

until findnext(sr) <> 0;

findclose(sr);

end;

end;

或procedure tform1.button1click(sender: tobject);

begin

listbox1.items.clear ;

findlikefile('d:/work/','xls');

end;

(2)查詢某目錄下的所有檔案,非目錄

procedure tform1.button2click(sender: tobject);

var  sr: tsearchrec;

begin

listbox1.items.clear ;

if findfirst('d:/work/*.*', faanyfile, sr) = 0 then

begin

repeat

if (sr.attr and fadirectory)=0 then

listbox1.items.add(sr.name+ '   '+inttostr(sr.attr))  ;

until findnext(sr) <> 0;

findclose(sr);

end;

showmessage(inttostr(listbox1.items.count));

end;

(3)查詢某目錄下的所有目錄,包含 「.」  「..」

procedure tform1.button2click(sender: tobject);

var  sr: tsearchrec;

begin

listbox1.items.clear ;

if findfirst('d:/work/*.*', faanyfile, sr) = 0 then

begin

repeat

if (sr.attr and fadirectory)<>0 then

listbox1.items.add(sr.name+ '   '+inttostr(sr.attr))  ;

until findnext(sr) <> 0;

findclose(sr);

end;

showmessage(inttostr(listbox1.items.count));

end;

(4)查詢某目錄下的指定檔案,包含子目錄

procedure tform1.button1click(sender: tobject);

//逐層目錄第歸

procedure findsubdir(parentdir:string);

var sr: tsearchrec; sdir:string;

begin

//(1)查詢當前目錄

statusbar1.******text := parentdir;

findspecfile(parentdir,'test.txt');    //(a)指定檔案查詢

//findlikefile(parentdir,'test');      //(b)檔名包含查詢

//(2)第歸查詢子目錄

if findfirst(parentdir+'*.*', faanyfile, sr) = 0 then

begin

repeat

if (sr.name='..')or(sr.name='.') then continue;

if (sr.attr and fadirectory)<>0 then

begin

sdir:=parentdir+sr.name+'/';

findsubdir(sdir);     //逐層第歸

end;

until findnext(sr) <> 0;

findclose(sr);

end;

end;

varsr: tsearchrec; sdir:string;

begin

screen.cursor :=  crhourglass;

listbox1.items.clear ;

trysdir:='d:/back/';  //初始目錄

findsubdir(sdir);

if listbox1.items.count >0 then

statusbar1.******text :='共找到個'+inttostr(listbox1.items.count)+'檔案'

else

statusbar1.******text :='沒有找到檔案';

finally

screen.cursor := crdefault;

end;

end;

查詢的幾種方法

1.get and load quote session.get clazz,id session.load clazz,id quote 說明 load 與get 的區別 請注意如果沒有匹配的資料庫記錄,load 方法可能丟擲無法恢復的異常 unrecoverable exception 如果類的...

iOS 獲取檔案的目錄路徑的幾種方法

iphone沙箱模型的有四個資料夾,分別是什麼,永久資料儲存一般放在什麼位置,得到模擬器的路徑的簡單方式是什麼.nshomedirectory 手動儲存的檔案在documents檔案裡 nsuserdefaults儲存的檔案在tmp資料夾裡 1 documents 目錄 您應該將所有的應用程式資料檔...

iOS 獲取檔案的目錄路徑的幾種方法

iphone沙箱模型的有四個資料夾,分別是什麼,永久資料儲存一般放在什麼位置,得到模擬器的路徑的簡單方式是什麼.nshomedirectory 手動儲存的檔案在documents檔案裡 nsuserdefaults儲存的檔案在tmp資料夾裡 1 documents 目錄 您應該將所有的應用程式資料檔...

iOS 獲取檔案的目錄路徑的幾種方法

iphone沙箱模型的有四個資料夾,分別是什麼,永久資料儲存一般放在什麼位置,得到模擬器的路徑的簡單方式是什麼.nshomedirectory 手動儲存的檔案在documents檔案裡 nsuserdefaults儲存的檔案在tmp資料夾裡 1 documents 目錄 您應該將所有的應用程式資料檔...

C 獲取目錄的幾種方法

來至 獲取程式的基目錄。獲取模組的完整路徑。system.diagnostics.process.getcurrentprocess mainmodule.filename 可獲得當前執行的exe的檔名。獲取和設定當前目錄 該程序從中啟動的目錄 的完全限定目錄。system.environment....