サブディレクトリを既存のパスに追加しようとしています。
Win-7 64、インテル SSD
「管理者」としてではなく、管理者特権を持つユーザーとして会社のドメインにログインしました
Visual Studio 2008、通常どおり起動 (「管理者として実行」ではありません)
MyApp は次のとおりです (WinForms、デバッグ、x86):
[STAThread]
private static void Main(string[] args)
{
string p = @"C:\ProgramData\MyCompany\MyApp";
Directory.CreateDirectory(p);
string f = "a.txt";
string fullPath = Path.Combine(p, f);
File.WriteAllText(fullPath, string.Empty);
Directory.Delete(p);
予想どおり、最後の行で IOException: "The directory is not empty" がスローされます。サブディレクトリとファイルが作成されたことを意味するはずです。
問題: Windows エクスプローラーに MyApp サブディレクトリが表示されません (更新後でも、アドレス バーにパスを入力するか、閉じる/再度開くか、または再起動します)。
C:\ProgramData\MyCompany\ は別のアプリケーションのインストーラーによって作成されました。Windows エクスプローラーは、現在の所有者が System であると表示しています。
同じ IDE を使用してコンソール アプリ (デバッグ、x86) を作成し、上記の行をコピーして実行しました。Windows Explorer は、喜んで DigitalTestApps とその中のファイルを表示してくれました。
MyApp に対して次のいずれかを実行すると、問題は解消されます (つまり、Windows エクスプローラーで "MyApp" サブディレクトリとその中のファイルが表示されます)。
x64 としてビルド
「管理者として実行」を使用して Visual Studio を起動します。
「MyApp」以外の名前を使用します(ただし、レガシーの理由から MyApp を使用する必要があります)
何が原因でしょうか?