2014-03-14 44 views
0

如何確定Windows目錄中的哪個文件夾是'修改日期'的最新版本?
Like this one,但對於文件夾沒有文件。通過「修改日期」確定目錄中的哪個文件夾是最新的?

我需要創建像GetLastModifiedFolderName('D:\LogFolder\'):string;

下面一些提議(從MBO)後的函數然後閱讀一些findfirst參考。我修改回答的鏈接變成這樣一個:

function TForm1.GetLastModifiedFolderName(AFolder: String): string; 
var 
    sr: TSearchRec; 
    aTime: Integer; 
begin 
    Result := ''; 
    aTime := 0; 

    if FindFirst(IncludeTrailingPathDelimiter(AFolder)+'*',faDirectory, sr) = 0 then 
    begin 
    // directory found 
    repeat 
     if (sr.Attr and faDirectory)=faDirectory then 
     begin 
     // directory only 
     if (sr.Name <> '.') and (sr.name<>'..') then 
     begin 
      // exclude '.' and '..' directory 
      if sr.Time > aTime then 
      begin 
      aTime := sr.Time; 
      Result := sr.Name; 
      end; 
     end; 
     end; 
    until FindNext(sr) <> 0; 
    FindClose(sr); 
end else 
    begin 
    // not found 
    Result:='-1'; 
    end; 
end; 
+0

到目前爲止,沒有關於它的文章,谷歌搜索後 – postgreat

回答

5

您可以使用稍微修改後的鏈接答案函數。因爲你只需要文件夾,只是檢查文件系統對象(由FindXX功能找到)是一個目錄:

if (sr.Attr and faDirectory) = faDirectory ... 

附:請注意,新版本的Delphi版本包含具有各種有用方法的System.IOUtils單元。

相關問題