我想列出給定目錄中的所有目錄。我有這樣的代碼:即使與faDirectory一起使用,FindNext也會返回文件名
var
srec: TSearchRec;
begin
// folder is some absolute path of a folder
if FindFirst(folder + PathDelim + '*', faDirectory, srec) = 0 then
try
repeat
if (srec.Name <> '.') and (srec.Name <> '..') then
ShowMessage(srec.Name);
until FindNext(srec) <> 0;
finally
FindClose(srec);
end;
但由於某種原因,我收到有關文件名的消息而不是目錄。我以爲使用faDirectory
將使FindFirst
和家庭只返回目錄的名稱。我究竟做錯了什麼?如果我將其更改爲
if FindFirst(folder, faDirectory, srec) = 0 then
然後,它只能說明folder
名稱,但不是絕對路徑(相對於folder + '/..'
),之後退出。
我意識到我可以通過確認(srec.Attr and faDirectory) = faDirectory
來檢查它是否是一個目錄,但我覺得這樣做是迂迴的做法,應該有一個正確的方法來做到這一點。
謝謝,我會用這個。但是有什麼想法,我的第一次嘗試有什麼問題? – 2011-12-30 07:04:57
檢查更新的答案 – RRUZ 2011-12-30 07:11:19
啊我看到了,非常感謝。 – 2011-12-30 07:14:16