VC初心者です。よろしくお願いします。
ファイル出力で複数のファイルを出力させる手段としてフォルダを指定させようとしています。
処理の流れは以下です。
1)フルダ参照ダイアログ(SHBrowseForFolder)のAPIを使っています。
2)このAPIから得たフォルダに書込みを行う場合に書けるかどうか
を判断する為に、(GetFileAttributes)を使用しています。
しかし、ここから書込み可能かどうかの判定の仕方がわかりません。
(単に、FILE_ATTRIBUTE_HIDDENとの論理和ではうまくいきません)
いい方法を知っている方、ご教授ねがいます。
間違えました、FILE_ATTRIBUTE_READONLYとの論理和でうまくいきません。です。
GetFileAttributes()を使えば取得できるはずですが、
どのようにうまくいかないのでしょうか?
GetFileAttributes()がエラー(-1)を返しているのであれば、
GetLastError()でエラーコードを調べてください。
see)
http://rararahp.cool.ne.jp/cgi-bin/lng/lng.htm
http://www.mtakahashi.com/cgi.cgi?07086
http://forums.belution.com/ja/vc/000/108/67.shtml
ってところですか。
たぶん,最初の項目を見ていないだろうから……。
ご迷惑おかけしてすみません。急ぎ(バグ回収)なもので。
結果はお知らせします。
c:\System Volume Infomation を選択時にエラーメッセージにしたいのですが、
これで引っ掛けられないのです。
if(fa & FILE_ATTRIBUTE_READONLY) return(1); //書込み禁止
因みに、ダミーファイルを書き込んでみたところ、APが落ちてしまい
うまくいきませんでした。(Win2000です。)
DOS/Windows の場合、ディレクトリの ReadOnly 属性が有効でも、ファイルやサブディ
レクトリの作成を行うことが出来てしまったと思います。
この仕様を悪用?して、w95 あたりからのシェルは「ReadOnly 属性が有効で
desktop.ini を格納するフォルダ」に対して特別な機能を実現していたりします。
System Volume Infomationは、システムファイルなので、
通常は読取専用になったりしないと思うのですが、
System Volume Infomationが読取専用であるという事実を
何か別の方法で確認していらっしゃるのでしょうか?