2010-11-21 4 views
3

J'ai récemment commencé avec Delphi et maintenant je veux obtenir tous les fichiers mp3 à partir d'un répertoire. Je veux quelque chose comme la fonction php glob().Comment trouver tous les fichiers MP3 dans un répertoire?

+3

Si vous avez récemment commencé avec Delphi, pourquoi êtes-vous sur Delphi 6? –

+3

@Mason - D'accord! Ce n'est pas comme Harry Potter, tu n'as pas à recommencer depuis le début! –

+1

@Mason Wheeler: parce qu'il en avait une copie et ne voulait pas dépenser 900 euros pour chercher des mp3? –

Répondre

12

L'ancienne façon de le faire est d'environ:

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

Fonctionne bien, sauf si la condition doit être 'status = 0'. – AntonLosev

3

Essayez IOUtils.TDirectory.

+1

Ce type n'existe pas dans Delphi 6. –

+0

Ensuite, utilisez FindFirst etc. comme suggéré par Bill99 - C'est ainsi que TDirectory est implémenté. –

1

Si les bibliothèques supplémentaires sont ok pour vous, jetez un oeil au Code Jedi Library.

Dans l'unité commune \ JclFileUtils, il y a une fonction d'assistance compacte:

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

Le JCL est bien entretenu et comprend de grandes extensions et des améliorations IDE. Le (très facile à utiliser) installateur JCL est disponible à http://sourceforge.net/projects/jcl/

1

L'ancien TFileListBox dans l'unité Delphi FileCtrl est une bonne solution.

Il a été là depuis Delphi 1, et à propos de Delphi has a nice example on how to use it.

Vous pouvez le déposer sur un formulaire, définir Visible = False, et ne jamais s'inquiéter à ce sujet.

Il prend en charge le filtrage (par exemple sur l'extension), donc il fonctionnera très bien avec votre critère * .mp3.

--jeroen

Questions connexes