关注此FileCopyProgress正在处理单个文件,需要它才能使用多个文件 有一个checboxlist来填充目录中的文件< - 工作正常 可以复制单个文件没问题,但需要复制选中的每个文件
填充复选框列表的代码
procedure ListFileDir(Ext: string;Path: string; FileList: TStrings);
var
SR: TSearchRec;
begin
if FindFirst(Path + Ext, faAnyFile, SR) = 0 then
begin
repeat
FileList.Add(UpperCase(SR.Name));
until FindNext(SR) <> 0;
FindClose(SR);
end;
end;
检查是否已选中复选框的代码
{ checkboxes }
for i := 0 to cblLogs.Items.Count - 1 do
if cblLogs.Checked[i] then
s := s + cblLogs.Items[i];
答案 0 :(得分:3)
您的问题是您要将所有名称添加到单个字符串中。那不会奏效。你需要做这样的事情:
{ checkboxes }
for i := 0 to cblLogs.Items.Count - 1 do
if cblLogs.Checked[i] then
TurboFileCopy(cblLogs.Items[i], 'X:\' + cblLogs.Items[i], nil);
或者你也可以建立一个字符串列表,稍后再使用它:
filesToCopy := TStringList.Create;
...
for i := 0 to cblLogs.Items.Count - 1 do
if cblLogs.Checked[i] then
filesToCopy.Add(cblLogs.Items[i]);
...
for i := 0 to filesToCopy.Count - 1 do
TurboFileCopy(filesToCopy[i], BuildTargetFileName(filesToCopy[i]), nil);
这将分别处理每个文件。