delphi 点击按钮时弹出对话框,选择文件夹,然后获取其中的所有文件的文件名,并且放在一个数组中
delphi点击按钮时弹出一个选择目录对话框,选择一个含有多个excel的文件夹,然后获取其中的所有excel文件的文件名,并且放在一个数组中,在delphi中改如何实现...
delphi 点击按钮时弹出一个选择目录对话框,选择一个含有多个excel的文件夹,然后获取其中的所有excel文件的文件名,并且放在一个数组中,在delphi中改如何实现?
展开
1个回答
展开全部
delphi打开文件夹:
uese FileCtrl
if SelectDirectory('', '', aPath) then
Delphi下遍历文件夹下所有文件的递归算法
procedure MakeTree(var slFile: TStrings; const FileExt: string);
var
Sr : TSearchRec;
Err : integer;
TrSize, FilePath : string;
begin
Err:=FindFirst('*.*', $11, Sr) ;
While (Err = 0) do
begin
if Sr.Name[1] <> '.' then
begin
if FileExt = '' then
slFile.Add(sr.Name)
else
begin
if AnsiUpperCase(Copy(sr.Name, Length(sr.Name) - 3, 4)) = AnsiUpperCase(FileExt) then
slFile.Add(sr.Name);
end;
end;
if ((Sr.Attr and faDirectory) <> 0) AND (Sr.Name[1] <> '.') then
begin
ChDir(Sr.Name) ;
MakeTree(slFile, FileExt);
ChDir('..') ;
end ;
Err:=FindNext(Sr) ;
end ;
end;
slFile 传入一个字符串列表以保存得到的结果, FileExt 为 '' 可以遍历所有文件,FileExt 指定为 ".xls" 或者 ".txt" 可以指定查询文件的后缀名.
如果需要将目录也返回,可以修改一下代码。
uese FileCtrl
if SelectDirectory('', '', aPath) then
Delphi下遍历文件夹下所有文件的递归算法
procedure MakeTree(var slFile: TStrings; const FileExt: string);
var
Sr : TSearchRec;
Err : integer;
TrSize, FilePath : string;
begin
Err:=FindFirst('*.*', $11, Sr) ;
While (Err = 0) do
begin
if Sr.Name[1] <> '.' then
begin
if FileExt = '' then
slFile.Add(sr.Name)
else
begin
if AnsiUpperCase(Copy(sr.Name, Length(sr.Name) - 3, 4)) = AnsiUpperCase(FileExt) then
slFile.Add(sr.Name);
end;
end;
if ((Sr.Attr and faDirectory) <> 0) AND (Sr.Name[1] <> '.') then
begin
ChDir(Sr.Name) ;
MakeTree(slFile, FileExt);
ChDir('..') ;
end ;
Err:=FindNext(Sr) ;
end ;
end;
slFile 传入一个字符串列表以保存得到的结果, FileExt 为 '' 可以遍历所有文件,FileExt 指定为 ".xls" 或者 ".txt" 可以指定查询文件的后缀名.
如果需要将目录也返回,可以修改一下代码。
更多追问追答
追问
if SelectDirectory('', '', aPath) then
这里的apath是文件夹的目录吗?Slfile和Fileext改怎么设定呢?
追答
搜索下SelectDirectory的用法就知道了
http://hi.baidu.com/lihaibo1989/item/afd42213de2aeec939cb3016
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询