如何访问目录的任何文件或子目录?

时间:2018-03-22 21:14:32

标签: c# winforms

我有一个根目录,路径定义为

{{1}}

我有一个删除方法,它将删除任何选定的子目录,如下所示:

{{1}}

但是,如果我尝试删除子目录中任何选定的子目录,我会收到以下错误:“找不到路径的一部分......”或“目录不为空”。有谁能告诉我如何解决这个问题?

3 个答案:

答案 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);
}