procedure tbsfilebackupform.searchfile(path: pchar; fileext: string; filelist: tstringlist);
var
searchrec: tsearchrec;
found: integer;
tmpstr: string;
curdir: string;
dirs: tqueue;
pszdir: pchar;
begin
dirs := tqueue.create; //建立目錄佇列
dirs.push(path); //將起始搜尋路徑入隊
pszdir := dirs.pop;
curdir := strpas(pszdir); //出隊
while (true) do
begin
//加上搜尋字尾,得到類似'c:\*.*' 、'c:\windows\*.*'的搜尋路徑
tmpstr := curdir + '\*.*';
//在當前目錄查詢第乙個檔案、子目錄
found := findfirst(tmpstr, faanyfile, searchrec);
while found = 0 do //找到了乙個檔案或目錄後
begin
//如果找到的是個目錄
if (searchrec.attr and fadirectory) <> 0 then
begin
if (searchrec.name <> '.') and (searchrec.name <> '..') then
begin
tmpstr := curdir + '\' + searchrec.name;
dirs.push(strnew(pchar(tmpstr)));
end;
end
else //如果找到的是個檔案
begin
//把找到的檔案加到memo控制項
if fileext = '.*' then
filelist.add(curdir + '\' + searchrec.name)
else
begin
if sametext(rightstr(curdir + '\' + searchrec.name, length(fileext)), fileext) then
filelist.add(curdir + '\' + searchrec.name);
end;
end;
//查詢下乙個檔案或目錄
found := findnext(searchrec);
end;
if dirs.count > 0 then
begin
pszdir := dirs.pop;
curdir := strpas(pszdir);
strdispose(pszdir);
end
else
break;
end;
//釋放資源
dirs.free;
findclose(searchrec);
end;
shell遍歷目錄下所有檔案
filelist ls home work file for file in filelist do echo file done 一定要切記filelist 後邊的那個引號不是單引號,而是tab鍵上邊的那個鍵,或者說是1左邊的那個鍵。否則的話不起作用。唉,自己在上吃虧了好長時間。汗!如果ls後面的...
Java 遍歷目錄下所有檔案
file file new file files 2.申請兩個arrylist空間,乙個存放目錄,乙個存放檔案 listfilelist new arraylist 檔案儲存 listfileslistdir new arraylist 目錄儲存3.讀取目錄下的所有檔案 file filearr f...
遍歷目錄下的所有檔案
下面這段 演示了查詢乙個目錄下所有檔案的過程,將檔名存放在result.txt檔案中。void cmydlg oncollectallfilename myfile.writestring lpctstr myfinder.getfilepath t n mylist.removehead myfi...