Inno setup Inno设置:在代码部分递归复制文件夹、子文件夹和文件

Inno setup Inno设置:在代码部分递归复制文件夹、子文件夹和文件,inno-setup,pascalscript,Inno Setup,Pascalscript,是否有任何方法可以浏览和递归复制/移动代码段中目录的所有文件和子目录?(preparetoall) 我需要忽略一个特定的目录,但使用xcopy它会忽略所有目录/default/,例如,我只需要忽略一个特定的目录 文件部分将在以后需要时执行。要以编程方式递归复制目录,请使用: 过程目录副本(SourcePath,DestPath:string); 变量 FindRec:TFindRec; SourceFilePath:string; DestFilePath:string; 开始 如果FindFi

是否有任何方法可以浏览和递归复制/移动代码段中目录的所有文件和子目录?(
preparetoall

我需要忽略一个特定的目录,但使用
xcopy
它会忽略所有目录
/default/
,例如,我只需要忽略一个特定的目录


文件
部分将在以后需要时执行。

要以编程方式递归复制目录,请使用:

过程目录副本(SourcePath,DestPath:string);
变量
FindRec:TFindRec;
SourceFilePath:string;
DestFilePath:string;
开始
如果FindFirst(SourcePath+'\*',FindRec),则
开始
尝试
重复
如果(FindRec.Name'.'和(FindRec.Name'.'),则
开始
SourceFilePath:=SourcePath+'\'+FindRec.Name;
DestFilePath:=DestPath+'\'+FindRec.Name;
如果FindRec.Attributes和FILE_ATTRIBUTE_DIRECTORY=0,则
开始
如果FileCopy(SourceFilePath、DestFilePath、False),则
开始
日志(格式('已将%s复制到%s',[SourceFilePath,DestFilePath]);
结束
其他的
开始
日志(格式('未能将%s复制到%s'[
SourceFilePath,DestFilePath]);
结束;
结束
其他的
开始
如果存在dir(DestFilePath)或CreateDir(DestFilePath),则
开始
日志(格式('Created%s',[DestFilePath]);
DirectoryCopy(SourceFilePath、DestFilePath);
结束
其他的
开始
日志(格式('未能创建%s',[DestFilePath]);
结束;
结束;
结束;
直到没有FindNext(FindRec);
最后
FindClose(FindRec);
结束;
结束
其他的
开始
日志(格式('未能列出%s',[SourcePath]);
结束;
结束;
添加您需要的任何筛选。查看如何过滤


有关使用示例,请参见我的问题解答: