たびたびお世話になります。
現在下記の環境でプログラムを作成しており、掲題の問題に突き当たりました。
開発環境:Visual C++ 2008 Professional Edition(.NETアプリ)
OS: WindowsXP SP3
あるフォルダが指定されたとき、そのフォルダに対するアクセス権を取得したいと考えています。
目的は、(作成中の)実行中のプログラムがそのフォルダへアクセスできるかどうかを知りたいためです。
アクセス権の調査の結果、アクセス権が有ると判断される場合には、そのフォルダ以下で特定の処理をして、アクセス権が無い場合には、処理を中止したいと考えています。
ドキュメントなどを見ていると、アクセス権を設定する方法は載っているのですが、アクセス権を取得する方法を見つけることが出来ず、ここで質問させていただいた次第です。
何か良い方法をご存知の方がいらっしゃいましたら、ご教示いただきますよう、お願い致します。
No.1ベストアンサー
- 回答日時:
原則:
アクセス権の有無のチェックではなく,実際にアクセスした時に例外が発生したならばアクセス権がなかったとして取り扱う
上記で納得できないならば……
まず,DACLについて。
http://msdn.microsoft.com/en-us/library/aa374862 …
次に,System.IO.File.GetAccessControlについて
http://msdn.microsoft.com/ja-jp/library/system.i …
一応,上記で全部なのですが……
DACLを順番にみていって,
・最初に現在のユーザーまはた現在のユーザーを含むグループに対するAllowエントリが見つかったらアクセス許可
・最初に現在のユーザーまはた現在のユーザーを含むグループに対するDenyエントリが見つかったらアクセス不許可
・現在のユーザーおよび現在のユーザーを含むグループに対するエントリが見つからなかったらアクセス不許可
となります。はっきりいって,面倒くさいことこの上ないです。
さらに,他のプロセスが開いていた場合はアクセス不可だったりするのですが,
それは全部のプロセスに対して開いているハンドルを調べて,さらにそこからファイル名を調べて……という作業が必要になります。
# Process Explorerでやっているのでできるはず。やりかたは知りませんが。
さらに,ファイル名だけではハードリンクやシンボリックリンクに対して対処できないので,そのあたりも考慮する必要があります。
お返事が遅くなり申し訳ありません。
ご回答、ありがとうございます。
・・・考えることは沢山有りそうですね。
まずは、例外を検出したら処理を飛ばすようにしたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- サーバー FTPサーバについて詳しい方(アクセス権のないディレクトリを非表示にする方法) 4 2022/08/22 22:33
- 法学 不正アクセス禁止法の扱いについて 4 2022/03/23 18:13
- フリーソフト イーファンビューでwebpファイルが開けません 1 2022/07/12 07:07
- HTML・CSS 全部のアクセスを指定したページに転送させたい 2 2022/06/28 16:33
- その他(ソフトウェア) PC上のOutlookでIMAPアクセス時の送信が出来ない。Android上では問題なし。 2 2022/09/28 11:22
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- その他(ブラウザ) このページは動作していません HTTP ERROR 401 2 2022/11/28 12:11
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Outlook(アウトルック) outlookの送信エラーについて 1 2022/05/13 12:04
- サーバー windowsサーバの権限設定、フォルダ削除できないアカウントを作りたい 1 2023/04/07 09:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mallocについて
-
ArduinoのジャイロモジュールMP...
-
C言語をコンパイルするとコンピ...
-
システムエンジニアの適正について
-
VisualStudio2022でC言語プログ...
-
パイソン。If elseの挙動につい...
-
擬似コード 長さがmの配列でな...
-
Windows Formアプリからコンソ...
-
gccを行ってもexeファイルが生...
-
Linuxでの開発環境構築や設定の...
-
プログラムが書けません。
-
double型が正常に認識されてい...
-
MACで動く実行ファイルをWindow...
-
C言語でファクト関数を使わずに...
-
大量のデータを読み込んで表示...
-
C言語初心者 構造体 課題について
-
C言語階乗の総和を求める
-
C言語 配列と関数の練習問題
-
あなたは、Excelはどうやって学...
-
WindowsのCapsLock(キャップス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ApacheのBasic認証のログの取り方
-
HTTPのBasic認証に自動ログイン...
-
Basic認証のパスワードをユーザ...
-
外部の別ホストからのPOST送信...
-
BASIC認証
-
SQLConfigDataSourceについて。
-
Basic認証のログオフはやはり無...
-
Tomcatの基本認証が8080ポート...
-
web.configでフォーム認証でき...
-
ユーザー認証ダイアログをパス...
-
SMTPの認証を得るには
-
エクセルで備品管理
-
ログイン画面について
-
基本認証の実施判別方法について
-
PHPの$_SERVER["REQUEST_URL"]...
-
Linuxからファイルのコピー
-
ソフトウェアのWEB認証(アクテ...
-
ASP.NETでのユーザー認証方法
-
現在php(php5)とDB(MySQL)の勉...
-
ブログやホームページを毎日更...
おすすめ情報