「ReadOnly」ビットがセットされているファイルのサイズを「読み込む」ことができない理由を知っている人はいますか?私は管理者として自分のプログラムを実行していますが、私はファイルに書き込もうとしていません。ファイルエクスプローラからプロパティとファイルサイズを読み取ることはできますが、資格情報は低くても読み込みができません。 UnAuthorizedAccess例外です。私はこれの背後に論理を見ない、誰が誰?回避策はありますか?GetFiles()でreadonlyファイルのサイズを取得
private static double DirSize(DirectoryInfo tdir) {
double size = 0;
FileInfo[] files = tdir.GetFiles();
foreach (FileInfo file in files) { size += file.Length; }
DirectoryInfo[] dirs = tdir.GetDirectories();
foreach (DirectoryInfo dir in dirs) { size += DirSize(dir); }
return(size);
}
編集:このファイルは、読み込み専用のディレクトリへのショートカットです。 [セキュリティ]タブには、ディレクトリ自体とショートカットの両方に問題はありません。私はそれが単なるショートカットだから大したことではないと思うが、何が起こっているのか理解したいし、その1KBのショートカットを数えたいと思う。
これを理解するには、例外の詳細情報が必要です。例外のメッセージは何ですか? – jdphenix
これ以上のものは読み取り専用でなければなりません。ネットワークストアのパスですか?ファイルに対するアクセス許可はありますか?パスは何ですか? – DavidG
パスは "C:\ Users \ Test \ Documents \ Mijn afbeeldingen"です。デフォルトのPicturesフォルダはオランダ語です。それは "C:\ Users \ Test \ Mijn afbeeldingen"へのショートカットです。例外メッセージの余分なテキストは次のとおりです。「追加情報:C:\ Users \ Test \ Documents \アクセスが拒否されました。」 (オランダ語から翻訳されています)、それは "ファイルが読み込み専用でないことを確認してください"ということに関するものです。実際には読み込み専用です。権限はOKです。私の通常の管理者アカウントにはフルアクセス権があり、実際の管理者アカウントもあります。 – Saskia