文件夹操作
//下面函数可以,为方便,使用MFC中的CString可根据情况修改
BOOL ReplaceSameFile(CString sDir,//要查找的目录
CString sReplaceFile, //要被替换的文件,只是文件名
CString sNewFile//替换的文件,用全路径
)
{
if(sDir.IsEmpty() || sReplaceFile.IsEmpty() || sNewFile.IsEmpty())
return FALSE;
WIN32_FIND_DATA ws_data;
memset(&ws_data, 0, sizeof(WIN32_FIND_DATA));
HANDLE handle;
CString dir = sDir + "\\* ";
CString cur;
handle = FindFirstFile(dir, &ws_data);
if(handle == INVALID_HANDLE_VALUE)
return FALSE;
while(FindNextFile(handle, &ws_data))
{
if(ws_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
//是目录,用递归替换下一级目录中的文件
{
if(ws_data.cFileName[0] != '. ')//不是.或..
{
cur = sDir + "\\ " + ws_data.cFileName;
ReplaceSameFile(cur, sReplaceFile, sNewFile);
}
}
else if(sReplaceFile == ws_data.cFileName)//是要被替换的文件
{
cur = sDir + "\\ " + ws_data.cFileName;
//替换,
CopyFile(cur, sNewFile, FALSE);
}
}
FindClose(handle);
return TRUE;
}
---------
++C++
---------