ファイルの属性の見分け方

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
ケースケ
記事: 45
登録日時: 2005年5月31日(火) 23:46
お住まい: 愛知県
連絡する:

ファイルの属性の見分け方

#1 投稿記事 by ケースケ »

こんにちは。いつもお世話になります。

ファイルのパスがディレクトリかファイルか、確実に判断したいのですが、何かよい方法はないでしょうか?

GetFileAttributesでファイルの属性を求めたとしても、「別のドライブに移された読み取り専用の属性のディレクトリ」など、属性がいくつもあるファイルでは確実にディレクトリである、と言う事を判断する方法が分かりませんでした。

他にも、GetCompressedFileSizeでディスク上のファイルサイズを求めて、ディレクトリなら失敗するかな?と思ったのですが、0が返ってきて、判断できませんでした。

_splitpathで、拡張子のないパスをディレクトリと判断しようかとも思いましたが、System32フォルダの中で時々拡張子なしのファイルを見かけるので、あまり確実性が無い気がします。


確実に、ディレクトリとファイルを見分ける方法があれば、教えてください。
ウインドウにドロップされた物がファイルかディレクトリかで、処理を変化させたいと思っうので。
どうかよろしくお願いします。
hira
記事: 203
登録日時: 2005年5月31日(火) 20:14
お住まい: 兵庫県
連絡する:

Re: ファイルの属性の見分け方

#2 投稿記事 by hira »

ファイル名が "test" のとき、
(GetFileAttributes("test") And FILE_ATTRIBUTE_DIRECTORY) が0ならファイル、それ以外はフォルダと判別することができます。
GetFileAttributes関数のヘルプに、
>属性は、以下の定数の組み合わせで指定されます。
とありますが、こう書いてある場合には、And演算子でそれぞれの要素が含まれるかどうかを調べることができます。
反対に、
>以下の定数を組み合わせて指定します。
となっている場合は、それらをすべてOr演算子でつなげて指定すればいいわけです。
ケースケ
記事: 45
登録日時: 2005年5月31日(火) 23:46
お住まい: 愛知県
連絡する:

ありがとうございます

#3 投稿記事 by ケースケ »

そうやって見分けるんですね。
Orで連結して指定するから、てっきり戻り値もOrで連結されていると信じていました。


ありがとうございました。
返信する