如何使用未过滤和多选择的opendialog加载到listview只有.mp3文件?我正在使用这种方法:
procedure TForm1.PlayClick(Sender: TObject);
var i:integer;
begin
if opendialog1.execute then
begin
if ExtractFileExt(opendialog1.FileName[i]) ='.mp3' then
begin
for I := 0 to opendialog1.files.Count - 1 do
begin
listview1.Items.Add.Caption:=extractfilename(opendialog1.Files[i]);
end;
end;
end else
begin
showmessage(opendialog1.Files[i]);
end;
end;
Run Code Online (Sandbox Code Playgroud)
但是我需要一个像这样工作的程序:
如果用户打开具有各种扩展名的文件夹,则opendialog仅添加到扩展名为.mp3的ListView文件.我需要一个不使用过滤器的过程.谢谢!
您的代码中有几个问题.如果i变量未初始化,则必须检查for循环内部的扩展名,还要使用FileName[i]获取当前所选文件的属性检查文件的扩展名(仅在非多选模式下有效),所以你是比较此属性的元素(char).mp3而不是必须使用该 Files属性.
试试这个
var
i:integer;
LItem : TListItem;
begin
if opendialog1.execute then
for i := 0 to OpenDialog1.Files.Count - 1 do
if SameText(ExtractFileExt(opendialog1.Files[i]), '.mp3') then
begin
LItem:=listview1.Items.Add;
LItem.Caption:=ExtractFileName(OpenDialog1.Files[i]);
end;
end;
Run Code Online (Sandbox Code Playgroud)