资源简介
windows下 C++编程 删除指定文件或者文件夹(包含其下所有文件文件夹)源代码
代码片段和文件信息
// deletedir.cpp : delete file or folder ! create by LIAL ANFOX
//bool DeleteDir(const char *pDir)
//pDir filename or foldername
//If the function succeeds the return value is truefails=false
#include
#include
#include
#include “deletedir.h“
bool DeleteFolder(char * lpPath)
{
char szFind[MAX_PATH];
WIN32_FIND_DATA FindFileData;
strcpy(szFindlpPath);
strcat(szFind“\\*.*“);
HANDLE hFind=::FindFirstFile(szFind&FindFileData);
if(INVALID_HANDLE_VALUE == hFind)//有趣的返回
{
return false;
}
while(TRUE) {
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{ //判断是否为文件夹
if(FindFileData.cFileName[0]!=‘.‘)
{
strcpy(szFindlpPath);
strcat(szFind“\\“);
strcat(szFindFindFileData.cFileName);
if(!DeleteFolder(szFind))
return false;
}
}
else
{
char buf[500];
memset(buf0500);
strncpy(buflpPathstrlen(lpPath));
strcat(buf“\\“);
strcat(bufFindFileData.cFileName);
if(!DeleteFile(buf))//嵌套搜索删除
return false;
}
if(!FindNextFile(hFind&FindFileData))
break;
}
FindClose(hFind);
RemoveDirectory(lpPath);
return true;
}
bool DeleteDir(const char *pDir)
{
if (pDir == NULL)
return false;
//判断是文件还是文件夹
struct _stat sfile;
if(_stat( pDir &sfile)==0)
{
if (_S_IFREG&sfile.st_mode)
{
if(DeleteFile(pDir))
return true;
else return false;
}
if (_S_IFDIR&sfile.st_mode)
{
if(DeleteFolder((char *)pDir))
return true;
}
}
return true;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1792 2009-11-25 09:57 新建文件夹 (2)\deletedir.cpp
文件 320 2009-11-25 10:16 新建文件夹 (2)\deletedir.h
目录 0 2009-11-25 10:36 新建文件夹 (2)
----------- --------- ---------- ----- ----
2112 3
评论
共有 条评论