我假设 .NET DirectoryInfo 和 FileInfo 对象类似于 Java 的 java.io.File,即它们代表抽象路径并且不一定连接到现有的物理路径。
我可以用另一种可行的方式做我想做的事情(清空一个文件夹并在它不存在时创建它),但我想了解为什么这不起作用:
using System.IO;
namespace TestWipeFolder
{
internal class Program
{
private static void Main(string[] args)
{
var di = new DirectoryInfo(@"C:\foo\bar\baz");
if (di.Exists)
{
di.Delete(true);
}
// This doesn't work. C:\foo\bar is still there but it doesn't remake baz.
di.Create();
}
}
}
更新:我在重新启动后尝试了相同的代码,它工作正常。我仍然想知道与 Java File 对象有什么相似之处,以及删除 DirectoryInfo 对象引用的文件夹是否会搞砸,但现在已经被搁置了。