私はdelphiを使用しています。openpicturedialogを実行すると、ディレクトリのすべてのファイルのリストが必要です。
つまり、開くダイアログが実行され、そこから1つのファイルを選択すると、選択したファイルのディレクトリからすべてのファイルのリストが必要になります。
FileName
のTOpenDialog
プロパティからディレクトリ名を取得するように提案することもできます
ありがとうございました。
@ Himadri、OpenPictureDialogの主な目的はディレクトリを選択することではありません。このダイアログを別の目的で使用している場合は、このコードを試すことができます。
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;
delphi 2010を使用する場合は、tdirectory.getfilesを使用して、最初にioutils.pasをuses句に追加してから、次のコード行をイベントハンドラーに記述します(そのイベントハンドラーにすでにあるコードに加えて)
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;
if OpenPictureDialog1.Execute then
FileListBox1.Directory := extractFilePath(OpenPictureDialog1.FileName);
FileListBoxにリンクされたFilterComboBoxを使用して、ファイルタイプをフィルタリングすることもできます。
TFileListBoxとTFilterComboBoxは、「Win 3.1」のツールパレットにあります。 Delphi 4以降、これらのオブジェクトがあります。
ExtractFilePath関数を使用して、ディレクトリ名を取得できます。
myPath := extractFilePath(FileName);
fileNameは、OpenDialogで選択したファイルの名前です。