最近,我在写代码时遇到了有关删除和创建文件和文件夹的一些问题,通过google解决了这些问题。现将相关内容总结如下:
【一】删除指定类型文件
如:删除图像bmp文件
void DeleteFile(string m_FodlerPath)
{
WIN32_FIND_DATA m_FindFileData;
int m_FrameCount = 0;
string m_FindFileFormat;
m_FindFileFormat = m_FodlerPath +" \\*.bmp";
HANDLE m_FileHandle = FindFirstFileA(m_FindFileFormat.c_str (),&m_FindFileData);
if(INVALID_HANDLE_VALUE != m_FileHandle)
{
while(1)
{
string m_FilePath = m_FodlerPath+"\\"+m_FindFileData.cFileName ;
DeleteFile(m_FilePath.c_str ());
if(FindNextFile(m_FileHandle,&m_FindFileData) == FALSE)
break;
}
CloseHandle(m_FileHandle);
}
}
【二】删除指定文件夹
void DeleteFolder(string m_FolderPath)
{
WIN32_FIND_DATA m_FindFileData;
int m_FrameCount = 0;
string m_FindFileFormat;
m_FindFileFormat = m_FolderPath + "\\*.*";
HANDLE m_FileHandle = FindFirstFileA(m_FindFileFormat.c_str (),&m_FindFileData);
if(INVALID_HANDLE_VALUE != m_FileHandle)
{
while(1)
{
if(m_FindFileData.dwFileAttributes &FILE_ATTRIBUTE_DIRECTORY)
{
if(strcmp(m_FindFileData.cFileName ,".")&&strcmp(m_FindFileData.cFileName ,".."))
{
string m_FolderPath1 = m_FolderPath+"\\"+m_FindFileData.cFileName ;
cout<<m_FolderPath1<<endl;
DeleteFolder(m_FolderPath1);
}
}
else
{
string m_FilePath = m_FolderPath+"\\"+m_FindFileData.cFileName ;
DeleteFile(m_FilePath.c_str ());
}
if(FindNextFile(m_FileHandle,&m_FindFileData) == FALSE)
break;
}
}
FindClose(m_FileHandle);
RemoveDirectory(m_FolderPath.c_str ());
}
【三】创建文件夹
string m_FodlerPah;
CreateDirectory(m_Fodler.c_str (),NULL);
由于以上三个过程都使用了string类,因此,我们需要包含相应的头文件,并申明名空间,如下:
#include "string";
using namespace std;