我想将所选文件夹中的文件添加到备注框或字符串列表中,并显示结果。在两种方式中,我都可以添加它们,但是无法显示备忘录中文件夹中的文件或ShowMessage
-dialog中字符串列表中的文件。
function CountFilesInFolder(AFolder: String; AMask: String): Integer;
var
tmp1: TSearchRec;
ergebnis: Integer;
memo1: string;
list : TStringList;
begin
result := 0;
if (AFolder <> '') then
begin
if AFolder[length(AFolder)] <> '\' then AFolder := AFolder + '\';
ergebnis := FindFirst(AFolder + AMask, faArchive + faReadOnly + faHidden + faSysFile, tmp1);
while ergebnis = 0 do
begin
Inc(result);
ergebnis := FindNext(tmp1);
while ((tmp1.Name = '|*_tif.tif')) and (ergebnis <> 0) do
ergebnis := FindNext(tmp1);
end;
list.Add(tmp1.Name);
FindClose(tmp1);
end;
end;
谢谢您的时间,对不起我的英语不好。
这样的低级功能不应将项目直接添加到备忘录中。而是将TStrings
(字符串列表的抽象)传递给函数并填充它:
function CountFilesInFolder(AFolder: String; AMask: String; FileNames: TStrings): Integer;
begin
// do your file enumeration
// for each file call FileNames.Add(FileName);
end;
由于Lines
备忘录的属性也属于类型,因此TStrings
您可以像这样直接使用它:
CountFilesInFolder('D:\', '*.TXT', Memo1.Lines);
如果要将文件名放在字符串列表中,通常的模式如下所示:
FileNames := TStringList.Create;
try
CountFilesInFolder('D:\', '*.TXT', FileNames);
finally
FileNames.Free;
end;
重要的一点是,调用方创建并销毁了TStringList
传入的消息CountFilesInFolder
-这是Delphi中的一项重要原则。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句