2010-11-21 58 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

相关问题