書き込み許可を確認するための書き込みテストを作成します。テストは
try
{
string filePath = String.Format(Path.Combine(path, Path.GetRandomFileName()));
File.WriteAllText(filePath, @"0");
File.Delete(filePath);
return true;
}
catch (IOException uex)
{
//SomeErrorMessage
}
catch (SecurityException uex)
{
}
catch (UnauthorizedAccessException uex)
{
}
通常のユーザーとして C:\Windows\System32 に書き込もうとすると (ここでは書き込めません)、ファイル writeAllText はそのディレクトリに書き込めるように見えますが、削除行にコメントを付けると表示されません。そのディレクトリ内のファイル(管理者としてもプロンプトを使用します)、File.ReadAllText(filePath)を書いた場合、そのファイルを読み取ることができます。C:\Windows\System32 にファイルを作成できる理由と、そのファイルを File.ReadAllText(filePath) でのみ表示できるのはなぜですか?