私は、.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 オブジェクトが参照するフォルダーを削除すると問題が発生する可能性があるかどうかを知りたいのですが、それは後回しにしています。