1
A
回答
5
你需要的所有文件遍歷目錄中,並遞歸在所有的子目錄。你可以使用這個功能來做到這一點:
type
TFileEnumerationCallback = procedure(const Name: string);
procedure EnumerateFiles(const Name: string;
const Callback: TFileEnumerationCallback);
var
F: TSearchRec;
begin
if FindFirst(Name + '\*', faAnyFile, F) = 0 then begin
try
repeat
if (F.Attr and faDirectory <> 0) then begin
if (F.Name <> '.') and (F.Name <> '..') then begin
EnumerateFiles(Name + '\' + F.Name, Callback);
end;
end else begin
Callback(Name + '\' + F.Name);
end;
until FindNext(F) <> 0;
finally
FindClose(F);
end;
end;
end;
這是一個通用的例程。您可以提供一個回調過程,該過程將使用每個文件的名稱來調用。在回調過程中,做任何你想要的。
你的回調過程是這樣的:
procedure MakeReadOnly(const Name: string);
begin
FileSetAttr(Name, FileGetAttr(Name) or faReadOnly);
end;
而且你把它放在一起這樣的:
EnumerateFiles('C:\MyDir', MakeReadOnly);
+0
非常感謝 – user3297864
相關問題
- 1. 德爾福 - 獲取文件夾圖標
- 2. 如何從德爾福的已知文件夾GUID獲取文件夾路徑
- 3. 設置文件夾只讀爲false
- 4. 無法獲取msconfig.exe在system32文件夾中運行德爾福
- 5. 在蘋果腳本中設置文件夾和子文件夾
- 6. 如何讀取父文件夾和子文件夾中的特定文件(.xml)
- 7. 獲取德爾福MacOS的應用程序支持文件夾
- 8. 使該文件夾中的文件夾和子文件夾
- 9. 從文件夾和子文件夾讀取文件路徑到Excel中
- 10. 如何獲取文件夾的文件和子文件夾
- 11. 閱讀從文件夾的子文件夾和所有組件
- 12. C#的文件夾和子文件夾
- 13. 閱讀子文件夾中的文件
- 14. 只讀android文件夾直到5個子文件夾
- 15. 如何在德爾福中使用SID設置Windows文件夾的權限
- 16. 德爾福尋找可寫文件夾中的本地主機
- 17. 如何設置從中讀取文件的標準文件夾
- 18. PHP - 閱讀文件夾,所有子文件夾和子文件夾中的文件
- 19. JavaScript:讀取文件夾中的文件
- 20. 讀取文件夾中的文件
- 21. ICACLS文件夾和子文件夾
- 22. C#文件夾和子文件夾
- 23. 檢查文件夾和子文件夾
- 24. 如何讀取文件夾中的所有txt文件? (包括子文件夾)
- 25. 讀取主機根文件夾的Aquire子文件夾名稱
- 26. 搜索主文件夾和子文件夾中的.mp3文件
- 27. 遍歷文件夾中的文件名和子文件夾
- 28. 德爾福,在iOS中複製文件夾
- 29. 獲取目錄中的所有文件夾和子文件夾
- 30. 從文件夾內的文件夾讀取文件
調用'FileSetAttr'功能爲每個文件夾中找到並其子文件夾。對於該搜索,使用FindFirst,FindNext。 – TLama
@TLama:這屬於答案,而不是評論。 –