我做了个安装程序
要根据不同的操作系统来确定某一个文件
也就有a_xp.exe,a_2k.exe
如果是xp操作系统则把a_xp.exe改名成a.exe
如果是2000操作系统则把a_2k.exe改名为a.exe
在OnFirstUIAfter中我实现上面功能
但用nValue = RenameFile(szDir + "\\a_xp.exe", szDir + "\\a.exe");
却不行呀why
who can help me
要根据不同的操作系统来确定某一个文件
也就有a_xp.exe,a_2k.exe
如果是xp操作系统则把a_xp.exe改名成a.exe
如果是2000操作系统则把a_2k.exe改名为a.exe
在OnFirstUIAfter中我实现上面功能
但用nValue = RenameFile(szDir + "\\a_xp.exe", szDir + "\\a.exe");
却不行呀why
who can help me
RenameFile (szFileOld, szFileNew); 需要说明的是:DeleteFile函数不能删除系统文件、只读文件、隐含文件以及网络上没有删除权限的文件。并且该函数使用TARGETDIR作为其工作路径。而RenameFile函数是将由SRCDIR指定的源文件夹下的文件重新命名并移至由TARGETDIR指定的目标文件夹中。 [例Ex_Rename] 文件重新命名示例。
#define TARGET_DIR "D:\\Temp"
program
VarSave (SRCTARGETDIR); // 将缺省的源文件夹和目标文件夹路径保存
SRCDIR = TARGET_DIR; // 设定源文件夹路径
TARGETDIR = TARGET_DIR; // 设定目标文件夹路径
// 将My.TXT文件重新命名为MyNew.TXT
if ( RenameFile("My.TXT", "MyNew.TXT") < 0 ) then
MessageBox ("文件不能重新命名!", SEVERE);
else
MessageBox ("文件已重新命名。", INFORMATION);
endif;
VarRestore (SRCTARGETDIR); // 恢复缺省的源文件夹和目标文件夹路径
代码如下:(文件也不是只读的呀)
谢谢
------------------------------------------------------------------function OnCheck()
STRING szMsg, svOS_xp, svOS_2k, szDir;
int nResult;
NUMBER nValue, nvCheck_xp, nvCheck_2k;
begin
szMsg = "请选择你的操作系统类型\n\n注:此程序支持Windows XP、Windows 2000操作系统";
svOS_xp = "Windows XP";
svOS_2k = "Windows 2000";
nValue = EXCLUSIVE;
nvCheck_xp = TRUE; //默认是xp操作系统
nvCheck_2k = FALSE;
AskOptions(nValue, szMsg, svOS_xp, nvCheck_xp, svOS_2k, nvCheck_2k);
if(nvCheck_xp) //copy xp的程序到目标
goto Copy_xp; if(nvCheck_2k) //copy 2k的程序到目标
goto Copy_2k;
Copy_xp:
TARGETDIR = PROGRAMFILES ^@COMPANY_NAME ^@PRODUCT_NAME;
VarSave (SRCTARGETDIR);
szDir = TARGETDIR;
SRCDIR = szDir;
TARGETDIR = szDir;
nValue = RenameFile("aforxp.exe", "a.exe");
nValue = DeleteFile("afor2k.exe");
VarRestore (SRCTARGETDIR);
return 0;
Copy_2k:
TARGETDIR = PROGRAMFILES ^@COMPANY_NAME ^@PRODUCT_NAME;
VarSave (SRCTARGETDIR);
szDir = TARGETDIR;
nValue = RenameFile("afor2k.exe", "a.exe");
nValue = DeleteFile("aforxp.exe");
VarRestore (SRCTARGETDIR);
return 0;
end;
why can't rename the filename