Basic INFO XCopyFile2

由于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; 

原文地址:https://www.cnblogs.com/wanbinghong/p/2177290.html