• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:.NET(VisualC++2008)にて、指定されたフォルダへのアクセス権を取得したい)

.NET(VisualC++2008)にて、指定されたフォルダへのアクセス権を取得する方法

このQ&Aのポイント
  • 開発環境の.NET(VisualC++2008)で、指定されたフォルダへのアクセス権を取得する方法を教えてください。
  • 特定のフォルダに対するアクセス権を調査する必要があります。.NET(VisualC++2008)の開発環境で、アクセス権を取得する方法を教えてください。
  • WindowsXP SP3上のVisual C++ 2008 Professional Edition(.NETアプリ)で、指定されたフォルダへのアクセス権を取得したいです。方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

原則: アクセス権の有無のチェックではなく,実際にアクセスした時に例外が発生したならばアクセス権がなかったとして取り扱う 上記で納得できないならば…… まず,DACLについて。 http://msdn.microsoft.com/en-us/library/aa374862.aspx 次に,System.IO.File.GetAccessControlについて http://msdn.microsoft.com/ja-jp/library/system.io.file.getaccesscontrol.aspx 一応,上記で全部なのですが…… DACLを順番にみていって, ・最初に現在のユーザーまはた現在のユーザーを含むグループに対するAllowエントリが見つかったらアクセス許可 ・最初に現在のユーザーまはた現在のユーザーを含むグループに対するDenyエントリが見つかったらアクセス不許可 ・現在のユーザーおよび現在のユーザーを含むグループに対するエントリが見つからなかったらアクセス不許可 となります。はっきりいって,面倒くさいことこの上ないです。 さらに,他のプロセスが開いていた場合はアクセス不可だったりするのですが, それは全部のプロセスに対して開いているハンドルを調べて,さらにそこからファイル名を調べて……という作業が必要になります。 # Process Explorerでやっているのでできるはず。やりかたは知りませんが。 さらに,ファイル名だけではハードリンクやシンボリックリンクに対して対処できないので,そのあたりも考慮する必要があります。

hase-kou
質問者

お礼

お返事が遅くなり申し訳ありません。 ご回答、ありがとうございます。 ・・・考えることは沢山有りそうですね。 まずは、例外を検出したら処理を飛ばすようにしたいと思います。

関連するQ&A