c刪除指定的文件夾
『壹』 C#怎麼刪除文件夾的文件
publicstaticvoidDelectDir(stringsrcPath)
{
try
{
DirectoryInfodir=newDirectoryInfo(srcPath);
FileSystemInfo[]fileinfo=dir.GetFileSystemInfos();//返回目錄中所有文件和子目錄
foreach(FileSystemInfoiinfileinfo)
{
if(iisDirectoryInfo)//判斷是否文件夾
{
DirectoryInfosubdir=newDirectoryInfo(i.FullName);
subdir.Delete(true);//刪除子目錄和文件
}
else
{
//如果使用了streamreader在刪除前必須先關閉流,否則無法刪除sr.close();
File.Delete(i.FullName);//刪除指定文件
}
}
}
catch(Exceptione)
{
throw;
}
}
(1)c刪除指定的文件夾擴展閱讀
C#刪除指定文件或文件夾
//1、首先判斷文件或者文件路徑是否存在
if(File.Exists(fileFullPath))
{
//2、根據路徑字元串判斷是文件還是文件夾
FileAttributesattr=File.GetAttributes(fileFullPath);
//3、根據具體類型進行刪除
if(attr==FileAttributes.Directory)
{
//3.1、刪除文件夾
Directory.Delete(fileFullPath,true);
}
else
{
//3.2、刪除文件
File.Delete(fileFullPath);
}
File.Delete(fileFullPath);
}
『貳』 c\c++怎樣刪除文件夾
第一種方法
1.SHFileOperation
SHFILEOPSTRUCT FileOp;
ZeroMemory((void*)&FileOp,sizeof(SHFILEOPSTRUCT));
FileOp.fFlags = FOF_SILENT|FOF_NOCONFIRMATION;
FileOp.hNameMappings = NULL;
FileOp.hwnd = NULL;
FileOp.lpszProgressTitle = NULL;
FileOp.pFrom = lpszPath;
FileOp.pTo = NULL;
FileOp.wFunc = FO_DELETE;
SHFileOperation(&FileOp);
如果加了FOF_SILENT標志,那麼在函數調用的時候,即使出錯,也不會彈框提示,但是,今天發現,如果這個目錄是共享的,依然還是會彈框提示。不知道是不是一個Bug呢?
2.CFileFind
bool DeleteDirectory(char* strDirName)
{
CFileFind tempFind;
char strTempFileFind[MAX_PATH];
sprintf(strTempFileFind,"%s\\*.*", strDirName);
BOOL IsFinded = tempFind.FindFile(strTempFileFind);
while (IsFinded)
{
IsFinded = tempFind.FindNextFile();
if (!tempFind.IsDots())
{
char strFoundFileName[MAX_PATH];
strcpy(strFoundFileName, tempFind.GetFileName().GetBuffer(MAX_PATH));
if (tempFind.IsDirectory())
{
char strTempDir[MAX_PATH];
sprintf(strTempDir,"%s\\%s", strDirName, strFoundFileName);
DeleteDirectory(strTempDir);
}
else
{
char strTempFileName[MAX_PATH];
sprintf(strTempFileName,"%s\\%s", strDirName, strFoundFileName);
DeleteFile(sTempFileName);
}
}
}
tempFind.Close();
if(!RemoveDirectory(strDirName))
{
return FALSE;
}
return TRUE;
}
這個主要通過遞歸的方法,依次刪除文件,直到目錄為空,刪除目錄、文件夾。
第二種
//這是用vc的方法:
bool MyDeleteFile(char * lpszPath)
{
SHFILEOPSTRUCT FileOp={0};
FileOp.fFlags = FOF_ALLOWUNDO | //允許放回回收站
FOF_NOCONFIRMATION; //不出現確認對話框
FileOp.pFrom = lpszPath;
FileOp.pTo = NULL; //一定要是NULL
FileOp.wFunc = FO_DELETE; //刪除操作
return SHFileOperation(&FileOp) == 0;
}
void MyDialog::OnButton3()
{
// MyDeleteFile("d:\\PID\0\0"); //刪除一個文件夾
MyDeleteFile("d:\\PID.dsp\0d:\\PID.dsw\0\0"); //刪除多個文件
}
void MyDialog::OnButton3()
{
// MyDeleteFile("d:\\PID\0\0"); //刪除一個文件夾
MyDeleteFile("d:\\PID.dsp\0d:\\PID.dsw\0\0"); //刪除多個文件
}
『叄』 寫個批處理刪除指定文件或指定文件夾
使用的是del命令+rd命令,先刪除文件,在進入相應文件夾刪除文件夾下的文件夾,如下:
del /f /s /q C:UsersdellAppDataLocalTemp*.*
cd C:UsersdellAppDataLocalTemp
rd /s /q C:UsersdellAppDataLocalTemp
(3)c刪除指定的文件夾擴展閱讀:
del命令參數說明
/F:強制刪除只讀文件。
/S:從所有子目錄刪除指定文件。
/Q:安靜模式,刪除全局通配符時,不要求確認。
/A:根據屬性選擇要刪除的文件。
刪除指定屬性或指定屬性以外的文件,/AR、/AH、/AS、/AA分別表示刪除只讀、隱藏、系統、存檔文件,/A-R、/A-H、/A-S、 /A-A表示刪除除只讀、隱藏、系統、存檔以外的文件。
例如:
「DEL/AR *.*」表示刪除當前目錄下所有隻讀文件,「DEL/A-S *.*」表示刪除當前目錄下除系統文件以外的所有文件。
不知道文件是什麼屬性,那麼使用del /a即可。
del /a /f /s desktop.ini 搜索當前目錄下的所有子文件夾,並刪除指定文件
del temp* /q /f /s 將直接刪除本目錄的temp 目錄的所有文件,沒有任務提示
『肆』 在C語言中有沒有刪除文件夾的函數
可以用rmdir
不過 限制是 文件夾必須是空的
如果文件夾非空 需要遍歷遞歸調用remove和rmdir刪除所有文件和子文件夾。
事實上
系統命令的rm -r 也是rmdir和remove 遞歸的。
『伍』 c#+asp.net如何刪除指定路徑下的文件和文件夾
.net提供了一個靜態類Directory 用以處理文件夾相關操作 要刪除指定路徑下的文件和文件夾的話 可以使用Directory.Exists方法判斷該路徑是否存在 如果存在使用Directory.GetDirectories獲取該路徑下所有子文件夾 通過遍歷使用Directory.Delete方法刪除 再通過Directory.GetFiles獲取該路徑下所有文件 遍歷使用File.Delete方法刪除 具體代碼如下
if(Directory.Exists(yourPath))
{
//獲取指定路徑下所有文件夾
string[]folderPaths=Directory.GetDirectories(yourPath);
foreach(stringfolderPathinfolderPaths)
Directory.Delete(folderPath,true);
//獲取指定路徑下所有文件
string[]filePaths=Directory.GetFiles(yourPath);
foreach(stringfilePathinfilePaths)
File.Delete(filePath);
}
如果你需要連你指定的文件夾一起刪除 就簡單的多 如下
if(Directory.Exists(yourPath))
Directory.Delete(yourPath,true);
上述兩例中的yourPath應為指定文件夾的路徑 如: D: est 第一例則會刪除test文件夾下的所有子項 第二例則是test文件夾及其子項一起刪除 需要注意的是Directory.Delete方法有兩個重載 舉例說明:
Directory.Delete(yourPath);//如果yourPath有子項則刪除失敗拋出異常
Directory.Delete(yourPath,true);//第二個為bool類型參數表示是否需要使用遞歸刪除
補充說明 如果只是需要刪除文件 就使用File類 如下
if(File.Exists(filePath))
File.Delete(filePath)
上例中的filePath為文件的完整路徑 如: C: est est.txt