2016-08-21 1 views
0

「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のショートカットを数えたいと思う。

+0

これを理解するには、例外の詳細情報が必要です。例外のメッセージは何ですか? – jdphenix

+0

これ以上のものは読み取り専用でなければなりません。ネットワークストアのパスですか?ファイルに対するアクセス許可はありますか?パスは何ですか? – DavidG

+0

パスは "C:\ Users \ Test \ Documents \ Mijn afbeeldingen"です。デフォルトのPicturesフォルダはオランダ語です。それは "C:\ Users \ Test \ Mijn afbeeldingen"へのショートカットです。例外メッセージの余分なテキストは次のとおりです。「追加情報:C:\ Users \ Test \ Documents \アクセスが拒否されました。」 (オランダ語から翻訳されています)、それは "ファイルが読み込み専用でないことを確認してください"ということに関するものです。実際には読み込み専用です。権限はOKです。私の通常の管理者アカウントにはフルアクセス権があり、実際の管理者アカウントもあります。 – Saskia

答えて

0

Windowsでは、ファイルとディレクトリのセキュリティ資格が異なります。ディレクトリのファイルに簡単にアクセスできますが、ディレクトリ自体については、アプリケーションのユーザーの権限を設定する必要があります。

Properties -> Security -> Groups or Usernames 

また、データにアクセスしようとしているアプリケーションのユーザーにアクセス権を与える必要があります。 (例:IISユーザーの場合Webアプリケーションの場合)

+0

あなたのコメントをお寄せいただきありがとうございますが、ディレクトリは空であり、私はすでにディレクトリとディレクトリにつながるショートカットの両方への読み書きアクセス権を持っています。私はそれがWindowsのバグだと思う。とにかく、それはちょっとした問題ですので、私はそれを固定しないでください。 – Saskia

+0

@Saskia嬉しいです。しかし、私はそれがWindowsのバグだとは思わない。ユーザー "Everyone"にフルアクセスし、コードが機能するかどうかを確認する必要があります。それが動作する場合は、それがセキュリティの問題であることを確認することができます。 –

+0

私はそれを行うことができましたが、結局のところコードは他の人のコンピュータ上で実行されており、それらのファイルにすべての人を追加することはできません。さらに、私自身のuseraccountと管理者アカウントが追加され、これらのアカウントにアクセスできない場合、これは私がバグと呼ぶのは非論理的なものだと考えています。自分のユーザーアカウントがすでにそこにある場合は、「Everyone」は必要ありません。私はその "readonly"ビットのためにそれを賭け、GetFiles()を扱っているかのように私はそれか何かに書いている。 – Saskia

関連する問題