フォルダとファイルを簡単に識別したい


japs  2001-08-22 21:42:27  No: 103614  IP: [192.*.*.*]

ちょっとお聞きしたいのですが、取得したパス情報(フォルダ
orファイル)からフォルダとファイルを簡単に識別したいので
す。(尚、属性は全ての場合を含めて単純にフォルダとファイル
を識別します。又NT仕様なので圧縮属性も含みます。)

属性はアーカイブ+圧縮+フォルダや圧縮+ファイルなど複数に
またがったものもあるので、現状やってるGetattr関数を
使用してやるとなるとコードがとっても長く、複雑になってしま
うんです。もっと簡単に、単純にファイルとフォルダを見分ける
方法は無いものでしょうか?

ちなみに現在は、Getattr関数の戻り値で、
フォルダ  →  16
アーカイブ+フォルダ  →  48
圧縮+フォルダ  →  2046(何故か?)
の3つでフォルダを定め、それ以外をファイルとしています。
(本当はアーカイブ+圧縮+フォルダもあるんですが戻り値がわ
からなくて。)

誰かよい知恵を貸してください。お願いします。

編集 削除
たかみちえ  2001-08-22 23:10:51  No: 103615  IP: [192.*.*.*]

そのパスを読んでみてエラーが出ればフォルダでしょう。(またはパスは通ってません)
…て、これでいいのかなぁ…。
あとは、文字の末尾が\ならフォルダ(そうでない記述もできるので不可)
.が入ってなければフォルダ(いれたければどこでも.は入るので不可)
とかがありますけど…(ダメだってば)

  あと、アーカイブ+圧縮+フォルダの戻り値って、
それらの単体のファイルすべてをくっつけた値じゃないですか?

編集 削除
こころ  URL  2001-08-23 01:05:39  No: 103616  IP: [192.*.*.*]

> そのパスを読んでみてエラーが出ればフォルダでしょう
排他で開かれているファイルがフォルダ扱いされるので
そういう決め打ちはすべきではないでしょう。

> の3つでフォルダを定め、それ以外をファイルとしています。
GetAttrって使ったことないのであれなんですが
要は16 = &H10のフラグが立っていればフォルダってことなのでは?

編集 削除
さささん  2001-09-13 00:48:55  No: 103617  IP: [192.*.*.*]

始めまして、さささん です。
私は、そんなにできるほうではないのですが、見たことがある質問だったので、書き込ませていただきました。
MSDNライブラリで、"Dir関数"を検索し、その使用例を見ると以下のような記述があります。
GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory
この条件式で評価すると、圧縮フォルダの問題は、解決できたと思います。  (はずしていたらごめんなさい...)

編集 削除