VC MFC删除指定文件或文件夹内容 |
您所在的位置:网站首页 › mfc查找文件夹内所有文件 › VC MFC删除指定文件或文件夹内容 |
1.删除指定文件 第一种方法:定义一个文件类对象来操作 CFile TempFile; TempFile.Remove(指定文件名);
第二种方法: DeleteFile("c:\\abc\\test.exe ");//MFC框架中可直接调用此函数
2.删除目录 _rmdir() DeleteDirectory(sTempDir) RemoveDirectory(sTempDir)
//删除文件夹目录(非空)
方法一 bool DeleteDirectory( CString DirName) { AfxMessageBox("执行删除文件夹:"+DirName);
CString PUBPATH; PUBPATH=DirName;
CFileFind tempFind; DirName+="\\*.*"; BOOL IsFinded=(BOOL)tempFind.FindFile(DirName); while(IsFinded) { IsFinded=(BOOL)tempFind.FindNextFile(); if(!tempFind.IsDots()) {
CString strDirName; strDirName+=PUBPATH; strDirName+="\\"; strDirName+=tempFind.GetFileName(); AfxMessageBox("strDirName :"+strDirName);
if(tempFind.IsDirectory()) { //strDirName += PUBPATH; DeleteDirectory(strDirName); } else { SetFileAttributes(strDirName,FILE_ATTRIBUTE_NORMAL); //去掉文件的系统和隐藏属性 DeleteFile(strDirName); } } } tempFind.Close(); if(!RemoveDirectory(PUBPATH)) { return false ; } AfxMessageBox("文件夹删除成功..."); return true; }
方法二 bool DeleteDirectory( char* DirName) { HANDLE hFirstFile = NULL; WIN32_FIND_DATA FindData; char currdir[MAX_PATH] = {0}; sprintf(currdir, "%s\\*.*", DirName); hFirstFile = ::FindFirstFile(currdir, &FindData); if( hFirstFile == INVALID_HANDLE_VALUE ) return false; BOOL bRes = true; while(bRes) { bRes = ::FindNextFile(hFirstFile, &FindData); if( (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ) //发现目录 { if( !strcmp(FindData.cFileName, ".") || !strcmp(FindData.cFileName, "..") ) //.或.. continue; else { char tmppath[MAX_PATH] = {0}; sprintf(tmppath, "%s\\%s", DirName, FindData.cFileName); DeleteDirectory(tmppath); } } else //发现文件 { char tmppath[MAX_PATH] = {0}; sprintf(tmppath, "%s\\%s", DirName, FindData.cFileName); ::DeleteFile(tmppath); } } ::FindClose(hFirstFile); if(!RemoveDirectory(DirName)) { return false ; } return true; } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |