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