我有一个根目录,路径定义为
{{1}}
我有一个删除方法,它将删除任何选定的子目录,如下所示:
{{1}}
但是,如果我尝试删除子目录中任何选定的子目录,我会收到以下错误:“找不到路径的一部分......”或“目录不为空”。有谁能告诉我如何解决这个问题?
答案 0 :(得分:3)
您正在重新创建大量从未使用过的ListViewItem(正如Scott Chamberlain指出的那样)。
您已有FileInfo
个实例。只需在file
上使用FileInfo.Delete Method ()。
当你完成后也使用nodeDirInfo.Delete()
。您还应该检查Subdirectories,而不仅仅是文件。
如果您坚持使用静态Directory
- 类,请使用Directory.Delete(nodeDirInfo.Fullname, recursive: true);
答案 1 :(得分:3)
nodeDirInfo可以删除所有文件和目录(https://msdn.microsoft.com/en-us/library/c66e2tts(v=vs.110).aspx)
nodeDirInfo.Delete(true);
答案 2 :(得分:2)
如果您查看DirectoryInfo.Delete Method
的文档,您会注意到它需要bool
来定义它是否还应删除目录中的子目录和所有文件。这可能是绕过"最简单的方法。目录不是空的"异常。
避免找不到"目录"例外,您可以先检查一下:
var fullPath = Path.Combine(MyPath, newSelected.Tag);
if (Directory.Exists(fullPath))
{
new DirectoryInfo(fullPath).Delete(true);
}