以下示例将当前目录中的所有文本文件复制到名为\\ TEXTRO的只读文件的新目录。如果需要,新目录中的文件将更改为只读。
该应用程序使用GetCurrentDirectory函数来检索当前目录路径。此函数也可用于在更改为\\ TEXTRO目录后返回到当前目录。
然后,应用程序使用CreateDirectory功能创建\\ TEXTRO目录。
应用程序使用FindFirstFile和FindNextFile功能在当前目录中搜索所有.TXT文件。每个.TXT文件被复制到\\ TEXTRO目录。复制文件后,GetFileAttributes功能确定文件是否为只读。如果文件不是只读,应用程序将目录更改为\\ TEXTRO,并将复制的文件转换为只读使用SetFileAttributes功能。
当前目录中的.TXT文件已被复制,应用程序使用FindClose功能关闭搜索句柄。
WIN32_FIND_DATA FileData;
HANDLE hSearch;
DWORD dwAttrs;
char szDirPath[] = "c:\\TEXTRO\\";
char szNewPath[MAX_PATH];
char szHome[MAX_PATH];
BOOL fFinished = FALSE;
//创建一个新的目录。
if(!CreateDirectory(szDirPath,NULL))
{
ErrorHandler("Couldn't create new directory.");
}
//开始搜索当前目录中的.TXT文件。
hSearch = FindFirstFile("*.txt", &FileData);
if (hSearch == INVALID_HANDLE_VALUE)
{
ErrorHandler("No .TXT files found.");
}
//将每个.TXT文件复制到新目录
//并将其更改为只读(如果尚未)。
而(!fFinished)
{
lstrcpy(szNewPath, szDirPath);
lstrcat(szNewPath, FileData.cFileName);
if(CopyFile(FileData.cFileName,szNewPath,FALSE))
{
dwAttrs = GetFileAttributes(FileData.cFileName);
if(!(dwAttrs & FILE_ATTRIBUTE_READONLY))
{
SetFileAttributes(szNewPath,
dwAttrs | FILE_ATTRIBUTE_READONLY);
}
}
其他
{
ErrorHandler("Couldn't copy file.");
}
if(!FindNextFile(hSearch,& FileData))
if (GetLastError() == ERROR_NO_MORE_FILES)
{
MessageBox(hwnd,“没有更多的.TXT文件”,
"Search completed.", MB_OK);
fFinished = TRUE;
}
其他
{
ErrorHandler("Couldn't find next file.");
}
}
//关闭搜索句柄。
if(!FindClose(hSearch))
{
ErrorHandler("Couldn't close search handle.");
}