2009-04-15 6 views

答えて

1

:あなたの質問に、より明示的なrepsonseのようなものかもしれない他のすべてのISN Windowsは(多かれ少なかれ)リアルタイムのシステムなので、権利をテストしてからフォルダを作成する瞬間まで、権利が変更されている可能性があるからです。ユーザーがアプリケーションをしようとする変更

  • を犯し
  • 権利のためのテストに成功:ユーザーがフォルダ作成権のアプリケーションのテスト
  • フォルダの権限を変更しようとしている
    • :以下の可能性のある、重要なイベントの連鎖を考えてみましょうフォルダを作成する
    +0

    正当な理由を残さずにダウンボートしないでください。私の投稿に何が間違っていると分かっていたのですか? –

    +0

    私はそれが好きではありませんが、私は今この方法を使用します。 – weiqure

    +0

    @ null:慰めがあれば、私はそれも好きではありません。 –

    7

    FileIOPermissionを使用して、アプリケーションにファイル/フォルダに対する特定のアクセス許可があるかどうかを判断できます。 MSDNから

    FileIOPermission f = new FileIOPermission(PermissionState.None); 
    f.AllLocalFiles = FileIOPermissionAccess.Read; 
    try 
    { 
        f.Demand(); 
    } 
    catch (SecurityException s) 
    { 
        Console.WriteLine(s.Message); 
    } 
    

    EDIT:ただのフォルダを作成し、その後、例外をキャッチしようと

    private string GetWritableDirectory() 
    { 
        string currentDir = Environment.CurrentDirectory; // Get the current dir 
        FileIOPermission f = new FileIOPermission(FileIOPermissionAccess.Write, currentDir); 
        try 
        { 
        f.Demand(); // Check for write access 
        } 
        catch (SecurityException s) 
        { 
        return Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) ; // Return the appdata (you may want to pick a differenct folder here) 
        } 
        return currentDir; // Have write access to current dir 
    } 
    
    +0

    weiqureは彼がWindowsでC#を使用しているかどうかは分からないが、私はこれを知らなかった。 – ChrisF

    +0

    True - しかし、彼は.netを使用しています。 – PaulB

    +0

    あなたはタグを読むと助けになります。 – ChrisF

    関連する問題