2010-11-21 13 views
3

私は最近delphiを使い始めましたが、今はディレクトリからすべてのmp3ファイルを取得したいと思います。私はPHP関数glob()のようなものが欲しいです。ディレクトリ内のすべてのMP3ファイルを見つけるにはどうしたらいいですか?

+3

最近Delphiを使い始めたのはなぜですか? –

+3

@Mason - 合意しました!ハリー・ポッターのようなものではありません。最初からやり直す必要はありません。 –

+1

@Mason Wheeler:彼はコピーが横たわっていて、mp3を検索するのに900ユーロを費やしたくなかったので? –

答えて

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

conditionは 'status = 0'でなければよく動作します。 – AntonLosev

3

IOUtils.Tディレクトリを試してください。

+1

このタイプはDelphi 6にはありません。 –

+0

Bill99 - これがTDirectoryの実装方法です。 –

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

Delphi FileCtrlユニットの古代のTFileListBoxは良い解決策です。

デルファイ1以降、デルファイについてはhas a nice example on how to use itです。

フォームにドロップすることができます。Visible = Falseと設定してください。心配することはありません。

これはフィルタリングをサポートしています(拡張子など)ので、* .mp3基準でうまく動作します。

--jeroen

関連する問題