2010-11-21 56 views
3

我最近開始與delphi,現在我想從一個目錄中獲取所有mp3文件。我想要的東西像PHP函數glob()。如何找到目錄中的所有MP3文件?

+3

如果您剛剛開始使用Delphi,那麼您爲什麼使用Delphi 6? – 2010-11-21 16:17:59

+3

@Mason - 同意!這不像哈利波特,你不必一開始就回到原點! – 2010-11-22 00:23:55

+1

@梅森惠勒:因爲他有一個副本躺在身邊,不想花900歐元搜索MP3的? – 2010-11-22 07:41:19

回答

12

做舊的方式是約:

var 
    status : dword; 
    sr : TSearchRec; 
begin 
    status := FindFirst('*.mp3',faAnyFile,sr); 
    while status = 0 do 
    begin 

    // sr.Name is the filename; add it to a list 
    // or something. Note there is no path so you 
    // may need to add that back on somewhere 

    status := FindNext(sr); 
    end; 
    SysUtils.FindClose(sr); 

    // ... 
end; 
+0

工作正常,除了條件應該是'status = 0'。 – AntonLosev 2014-09-23 08:58:36

3

嘗試IOUtils.TDirectory。

+1

Delphi 6中不存在此類型。 – 2010-11-21 15:36:30

+0

然後使用FindFirst等,如Bill99所建議的 - 這就是TDirectory的實施方式。 – 2010-11-21 16:03:59

1

如果有其他的庫都ok你,看看絕地代碼庫。

在單元共同\ JclFileUtils,有一個緊湊的輔助函數:

function BuildFileList(const Path: string; 
    const Attr: Integer; const List: TStrings; 
    IncludeDirectoryName: Boolean = False): Boolean; 

的JCL被保持良好,幷包括大的擴展和一些IDE改進。 (非常好用)JCL安裝程序可以從http://sourceforge.net/projects/jcl/

1

古老的TFileListBox在德爾福FileCtrl單位是一個很好的解決方案。

自從Delphi 1和Delphi has a nice example on how to use it以來一直存在。

您可以將它放在表單上,​​設置爲Visible = False,而不必擔心。

它支持過濾(例如擴展名),所以它可以很好地與你的* .mp3標準一起工作。

- jeroen

相關問題