以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 C/C++编程思想 』 (http://bbs.xml.org.cn/list.asp?boardid=61) ---- 删除一个隐藏,系统文件和一个目录下所有的文件 (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=40045) |
-- 作者:卷积内核 -- 发布时间:11/15/2006 3:13:00 PM -- 删除一个隐藏,系统文件和一个目录下所有的文件 for(int i=0;i<iDel_File_Counts;i++) { _itoa(i+1,temp,10); GetPrivateProfileString("Delete_File_Name","DelFileDirectory","a:\\",DelFileDirectory,sizeof(DelFileDirectory),sFileName); GetPrivateProfileString("Delete_File_Name",temp,"empty",strDelFileName,sizeof(strDelFileName),sFileName); strcat(DelFileDirectory,"\\"); strcat(DelFileDirectory,strDelFileName); UpdateData(TRUE); m_message=strDelFileName; UpdateData(FALSE); if(::DeleteFile(DelFileDirectory)==0) { flag++; strCannotDelFile+=strDelFileName; strCannotDelFile+="\n"; } AfxMessageBox(DelFileDirectory); } if(flag>0) { m_Result.SetTextColor(RGB(255,0,0)); m_Result.SetWindowText("Can't Find the deleted file"); UpdateData(TRUE); m_message=strCannotDelFile; UpdateData(FALSE); } |
-- 作者:卷积内核 -- 发布时间:11/15/2006 3:13:00 PM -- 删除一个非空目录的两个办法: 1. SHFILEOPSTRUCT op={0}; op.wFunc = FO_DELETE; op.pFrom = "c:\\11"; op.fFlags = FOF_SILENT|FOF_NOCONFIRMATION|FOF_ALLOWUNDO; SHFileOperation(&op); 2. void DeleteFolder(CString sPath) { CFileFind ff; BOOL bFound; bFound = ff.FindFile(sPath + "\\*.*"); while(bFound) { bFound = ff.FindNextFile(); CString sFilePath = ff.GetFilePath(); if(ff.IsDirectory()) { if(!ff.IsDots()) DeleteFolder(sFilePath); } else { if(ff.IsReadOnly()) { SetFileAttributes(sFilePath, FILE_ATTRIBUTE_NORMAL); } DeleteFile(sFilePath); } } ff.Close(); SetFileAttributes(sPath, FILE_ATTRIBUTE_NORMAL); RemoveDirectory(sPath); } |
-- 作者:卷积内核 -- 发布时间:11/15/2006 3:14:00 PM -- BOOL DeleteDirectory(char *DirName)//如删除 DeleteDirectory("c:\\aaa") { CFileFind tempFind; char tempFileFind[MAX_PATH]; sprintf(tempFileFind,"%s\\*.*",DirName); BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind); while(IsFinded) { IsFinded=(BOOL)tempFind.FindNextFile(); if(!tempFind.IsDots()) { char foundFileName[MAX_PATH]; strcpy(foundFileName,tempFind.GetFileName().GetBuffer(MAX_PATH)); if(tempFind.IsDirectory()) { char tempDir[MAX_PATH]; sprintf(tempDir,"%s\\%s",DirName,foundFileName); DeleteDirectory(tempDir); } else { char tempFileName[MAX_PATH]; sprintf(tempFileName,"%s\\%s",DirName,foundFileName); DeleteFile(tempFileName); } } } tempFind.Close(); if(!RemoveDirectory(DirName)) { MessageBox(0,"删除目录失败!","警告信息",MB_OK);//比如没有找到文件夹,删除失败,可把此句删除 return FALSE; } return TRUE; } |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
62.500ms |