0

私はフォルダを正しく取得しようとしています。目的は、プログラムにこのファイルを作成するように依頼したときに、このフォルダー内にファイルを作成することです。ほとんどすべてを試しましたが、まだ機能しません。

try
{

   DirectorySecurity ds = Directory.GetAccessControl(path);

   foreach (FileSystemAccessRule rule in ds.GetAccessRules(true, true, typeof(System.Security.Principal.SecurityIdentifier)))
   {
      if ((rule.FileSystemRights & FileSystemRights.CreateFiles) > 0 /*== FileSystemRights.CreateFiles)*/)
         return true;
   }
}
catch (UnauthorizedAccessException e)
{
   return false;
}
return false;

私の問題は次のとおりです。FileSystemAccessRule は、私には権限があると言いましたが、ファイルを作成しようとすると、「unauthorizedexception」例外が表示されます。

次のように、DirectoryInfo を使用しようとしました。

DirectoryInfo di = new DirectoryInfo(path);
DirectorySecurity ds = di.GetAccessControl();

「ディレクトリ」オブジェクトを直接使用する代わりに。さらに、私の問題は GetAccessRules に関係していると考えていたので、SecurityIdentifier と NTAccount を使用しようとしましたが、どちらもこのフォルダー (FullControl) に対するすべての権利を持っていると言っていましたが、最後には権利がありません。 . そしてもちろん、私の道は良いです、私はそれをチェックしました。

フォルダの権限を取得する別の方法を誰かが知っているか、何か間違ったことをした場合は、少し助けていただければ幸いです。

4

1 に答える 1