在 Delphi 中,我需要根據日期從目錄中獲取檔案串列。我當前的代碼正在回傳所有請求的檔案,使用
Files := tDirectory.GetFiles(aDir, '*.docx', tSearchOption.soAllDirectories);
我想要那些基于日期的檔案(所以我不必處理 20000 個檔案,只需要處理自上次檢查以來添加的 10 個檔案......)
有沒有辦法做到這一點?
uj5u.com熱心網友回復:
您可以使用以下代碼:
USES System.Types, System.IOUtils;
FUNCTION GetFilesNewerThan(CONST Path,SearchPattern : STRING ; CONST SearchOption : TSearchOption ; CONST NewerThan : TDateTime) : TStringDynArray;
BEGIN
Result:=TDirectory.GetFiles(Path,SearchPattern,SearchOption,
FUNCTION(CONST Path : STRING ; CONST SearchRec : TSearchRec) : BOOLEAN
BEGIN
Result:=(SearchRec.TimeStamp>NewerThan)
END);
END;
這會呼叫 TDirectory.GetFiles 方法,但會應用過濾器,以便僅回傳“LastWrite”時間晚于給定“NewerThan”引數的檔案。
它仍然必須讀取整個目錄結構 - 如果您不像 David 建議的那樣持續監控目錄,則沒有內置的方法來過濾時間戳(我假設這是一個“按需”運行的程式,而不是24/7 全天候運行的服務)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/412477.html
標籤:
