.net提供了一个静态类Directory 用以处理文件夹相关 *** 作 要删除指定路径下的文件和文件夹的话 可以使用Directory.Exists方法判断该路径是否存在 如果存在使用Directory.GetDirectories获取该路径下所有子文件夹 通过遍历使用Directory.Delete方法删除 再通过Directory.GetFiles获取该路径下所有文件 遍历使用File.Delete方法删除 具体代码如下
if(Directory.Exists(yourPath)){
//获取指定路径下所有文件夹
string[] folderPaths = Directory.GetDirectories(yourPath)
foreach(string folderPath in folderPaths)
Directory.Delete(folderPath, true)
//获取指定路径下所有文件
string[] filePaths = Directory.GetFiles(yourPath)
foreach(string filePath in filePaths)
File.Delete(filePath)
}
如果你需要连你指定的文件夹一起删除 就简单的多 如下
if(Directory.Exists(yourPath))Directory.Delete(yourPath,true)
上述两例中的yourPath应为指定文件夹的路径 如: D:\test 第一例则会删除test文件夹下的所有子项 第二例则是test文件夹及其子项一起删除 需要注意的是Directory.Delete方法有两个重载 举例说明:
Directory.Delete(yourPath) //如果yourPath有子项 则删除失败 抛出异常Directory.Delete(yourPath,true) //第二个为bool类型参数 表示是否需要使用递归删除
补充说明 如果只是需要删除文件 就使用File类 如下
if(File.Exists(filePath))File.Delete(filePath)
上例中的filePath为文件的完整路径 如: C:\test\test.txt
FileInfo file = new FileInfo(@"c:\dos\abc.txt")if (file.Exists)
{
file.Delete()//删除单个文件
}
DirectoryInfo fold = new DirectoryInfo(@"c:\dos")
if (fold.Exists)
{
FileInfo[] files = fold.GetFiles("*.txt")
foreach (FileInfo f in files)//删除目录下*.txt
{
f.Delete()
}
}
其他的文件类型类似,希望能帮到你
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)