
こんにちは。いつもお世話になっております。
ファイルのアクセス権を取得する処理を記述していて行き詰まってしまいました。
今、指定ファイルに対してアクセス許可、アクセス拒否が設定されているか取得する関数を作成しています。
-------------------------------------------------
//AceType --> ACE種別(1:アクセス許可 2:アクセス拒否)
psd = GlobalAlloc(GMEM_FIXED, 1000);
//ファイルのセキュリティ情報取得
GetFileSecurity(DirPath, DACL_SECURITY_INFORMATION, psd, 1000, &sdsize);
GetSecurityDescriptorDacl(psd, &DaclPresent, &pacl, &DaclDefaulted);
if(!DaclPresent){
//随意ACLがない
GlobalFree(psd);
return 0;
}
else{
GetAclInformation(pacl, &AclSize, sizeof(AclSize), AclSizeInformation);
AceCount = AclSize.AceCount;
for(i = 0; i < AceCount; i++){
//ACE取得
GetAce(pacl, i, (LPVOID *)&pace);
if(AceType == 1 && pace->Header.AceType == ACCESS_ALLOWED_ACE_TYPE){
//アクセス許可
break;
}
if(AceType == 2 && pace->Header.AceType == ACCESS_DENIED_ACE_TYPE){
//アクセス拒否
break;
}
}
GlobalFree(psd);
return 1;
}
-------------------------------------------------
通常のファイルについてはうまく取得できているようですが、FD内のファイルについてアクセスするとエラーとなってしまいます。
どうやら「GetFileSecurity」で「SecurityDesc」にTRUEが返ってきているようなのです。
しかし、当然「pacl」には何も返ってこないため、「GetAclInformation」でエラーとなります。
なぜ、「SecurityDesc」にTRUEが返ってきてしまうのでしょうか?
どうかご教示下さい。
<環境>
Windows 2000, Visual C++ 6.0
No.1ベストアンサー
- 回答日時:
ファイルのアクセス権の対象となるのは、NTFSのディスクシステムです。
フロッピーは対象でないですね。
Win32サブルーチンズ - Windows NTでファイルにアクセス権を設定する方法
http://www7a.biglobe.ne.jp/~tsuneoka/win32tech/1 …
| ファイルシステムがNTFS(NT File System)でフォーマットされたディスクのみが利用できます.
--
> なぜ、「SecurityDesc」にTRUEが返ってきてしまうのでしょうか?
「GetFileSecurity」関数の実行結果を確認してください。
処理自体が失敗している場合、「SecurityDesc」変数の内容は保証されません。
neKo_deuxさん、回答ありがとうございます。
>ファイルシステムがNTFS(NT File System)でフォーマットされたディスクのみが利用できます。
なるほど。そういうことだったのですね。
ただ、「GetFileSecurity」関数の実行結果を確認したところTRUEが返ってきているようでした。
(ちなみに「GetSecurityDescriptorDacl」関数もTRUEを返しました)
他に原因があるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- フリーソフト イーファンビューでwebpファイルが開けません 1 2022/07/12 07:07
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Gmail 現在、お名前ドットコムで取得したドメインから「hello@〜」というメールアドレスを作成し、Gmai 1 2022/07/03 23:13
- ドライブ・ストレージ vhdxファイルからのデータの取り出し方 4 2023/06/14 23:53
- その他(クラウドサービス・オンラインストレージ) OneDriveのアクセス権限の変更について教えてください! 1 2023/03/02 13:49
- Windows 10 OpenFile(アクセスが拒否されました。5) 1 2022/09/14 14:36
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
おすすめの美術館・博物館、教えてください!
美術館・博物館が大好きです。みなさんのおすすめをぜひお聞きしたいです。
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
今から楽しみな予定はありますか?
いよいよ2025年が始まりました。皆さんには、今から楽しみにしている予定はありますか?
-
c++std::string型をTCHARに変換したい!
C言語・C++・C#
-
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一括ダウンロードの方法
-
バッチによるショートカットの...
-
動的に生成したVSBファイルへデ...
-
複数ファイルダウンロードについて
-
Excel-VBA 撮影日時の取得
-
ファイルのアクセス権の取得
-
Windowsのメモ帳でジョークウイ...
-
HTMLプログラムにExcelをリンク...
-
HTMLタグのあるCSVファイルを利...
-
NFSクライアントアクセス時のタ...
-
1フォルダに保存できるファイル...
-
JSONファイルをダウンロードさ...
-
PHPMailerにて添付ファイルをつ...
-
subversionからファイル取得時...
-
Excelでdatファイルを作成??
-
Microsoft Access エラー 3051
-
複数のテキストファイルをexcel...
-
【Excel VBA】PDFを作成して,...
-
VBAでファイルパスが長すぎてコ...
-
フォルダ作成用バッチファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチによるショートカットの...
-
1フォルダに保存できるファイル...
-
Excel-VBA 撮影日時の取得
-
エクセルをダウンロードさせる...
-
ファイルのアクセス権の取得
-
Windowsのメモ帳でジョークウイ...
-
ボタンをファイルにリンクさせたい
-
Excel VBAどこが間違ってますか?
-
FileUploadで複数ファイルのア...
-
HTMLタグのあるCSVファイルを利...
-
エクセルVBA ファイルOPEN時の...
-
VBAを使い、Web上からファイル...
-
FTPサーバからファイルをダウン...
-
JSONファイルをダウンロードさ...
-
HTMLプログラムにExcelをリンク...
-
C#のAxWindowsMediaPlayerから...
-
動的に生成したVSBファイルへデ...
-
一括ダウンロードの方法
-
PHPMailerにて添付ファイルをつ...
-
WebLogic/javaで一部JSPだけが...
おすすめ情報