搜索文件和更改文件属性

【勇芳软件工作室】汉化HomePreviousNext

以下示例将当前目录中的所有文本文件复制到名为\\ TEXTRO的只读文件的新目录。如果需要,新目录中的文件将更改为只读。

该应用程序使用GetCurrentDirectory函数来检索当前目录路径。此函数也可用于在更改为\\ TEXTRO目录后返回到当前目录。

然后,应用程序使用CreateDirectory功能创建\\ TEXTRO目录。

应用程序使用FindFirstFileFindNextFile功能在当前目录中搜索所有.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.");

}