Je travaille avec delphi, je veux une liste de tous les fichiers d'un répertoire lorsque j'exécute openpicturedialog.
c'est-à-dire, lorsque la boîte de dialogue ouverte est exécutée et que je sélectionne un fichier, je veux la liste de tous les fichiers du répertoire du fichier sélectionné.
Vous pouvez même me suggérer d'obtenir le nom du répertoire à partir de FileName
propriété de TOpenDialog
Merci.
@Himadri, l'objectif principal de OpenPictureDialog n'est pas de sélectionner un répertoire, de toute façon si vous utilisez cette boîte de dialogue avec un autre but, vous pouvez essayer ce code.
Var
Path : String;
SR : TSearchRec;
DirList : TStrings;
begin
if OpenPictureDialog1.Execute then
begin
Path:=ExtractFileDir(OpenPictureDialog1.FileName); //Get the path of the selected file
DirList:=TStringList.Create;
try
if FindFirst(Path + '*.*', faArchive, SR) = 0 then
begin
repeat
DirList.Add(SR.Name); //Fill the list
until FindNext(SR) <> 0;
FindClose(SR);
end;
//do your stuff
finally
DirList.Free;
end;
end;
end;
si vous utilisez delphi 2010, vous pouvez utiliser tdirectory.getfiles d'abord ajouter ioutils.pas à la clause uses, puis écrire la ligne de code suivante dans le gestionnaire d'événements (en plus du code que vous avez déjà dans ce gestionnaire d'événements)
uses IOUtils;
var
path : string;
begin
for Path in TDirectory.GetFiles(OpenPictureDialog1.filename) do
Listbox1.Items.Add(Path);{assuming OpenPictureDialog1 is the name you gave to your OpenPictureDialog control}
end;
Modifiez la propriété filter dans votre OpenPictureDialog pour inclure tous les fichiers:
All (*.*)
Edit : Je ne pense pas que vous puissiez sélectionner un répertoire dans une boîte de dialogue Open (Picture), ce n'est certainement pas le but d'un OpenPictureDialog de toute façon. this est peut-être ce que vous cherchez.
Utilisez ensuite FindFirst et FindNext pour obtenir les fichiers dans ce répertoire.
if OpenPictureDialog1.Execute then
FileListBox1.Directory := extractFilePath(OpenPictureDialog1.FileName);
Vous pouvez également utiliser un FilterComboBox lié à FileListBox pour filtrer le type de fichier.
TFileListBox et TFilterComboBox sont dans la palette d'outils sous "Win 3.1". De Delphi 4, il y a ces objets.
Vous pouvez utiliser la fonction extractFilePath pour obtenir le nom du répertoire:
myPath := extractFilePath(FileName);
où FileName est le nom du fichier que vous choisissez par OpenDialog.