Basic INFO - XCopyFile2
2011-09-15 11:51 Kevin.Wan 阅读(4023) 评论(3) 编辑 收藏 举报由于InstallShield默认提供的XCopyFile无法提供空文件的复制,所以覆写该函数,我这里命名为XCopyFile2,下面是源代码:
function XCopyFile2(svSrcDir, svDestDir)
LIST listDirs;
STRING svItem;
NUMBER nResult, nListResult;
STRING szSrcFiles, szTargetPath;
NUMBER nStart;
STRING svResult;
begin
// Create All Directories
// Create a STRING list for directory names.
listDirs = ListCreate (STRINGLIST);
// Find requested elements place them into the list.
nResult = FindAllDirs (svSrcDir, INCLUDE_SUBDIR, listDirs);
nListResult = ListGetFirstString(listDirs, svItem);
while (nListResult != END_OF_LIST)
nStart = 0; //reset
StrReplace ( svItem, svSrcDir, svDestDir, nStart );
//create new subdirectory
CreateDir(svItem);
nListResult = ListGetNextString(listDirs, svItem);
endwhile;
ListDestroy (listDirs);
// Copy All Files
szSrcFiles = svSrcDir ^ "*.*";
XCopyFile( szSrcFiles, svDestDir, COMP_NORMAL | INCLUDE_SUBDIR);
end;
下面是我在事件响应函数OnBegin中调用XCopyFile2的示例代码:
function OnBegin()
STRING svSrcDirectory, svDestDirectory;
begin
svSrcDirectory = "E:\\Temp\\Dir1";
svDestDirectory = "E:\\Temp\\Dir2";
XCopyFile2(svSrcDirectory, svDestDirectory);
end;
万炳宏(Kevin Wan)
Avizo/Amira技术交流,欢迎加我微信:13911850365或QQ:17842153