フォルダの選択

解決


kei  2004-04-02 15:20:02  No: 112619  IP: [192.*.*.*]

いつもお世話になります。
フォルダを選択したいのですが、そのときにファイルの一覧も見えるようにしたいのです。
コモンダイアログでの見え方で良いのですが、コモンダイアログではファイルを選択せねばならず、
空のフォルダを指定できません。
検索してみましたが、フォルダツリーだけしか見えないものばかりで、何のファイルが入っているのか
確認できるものはちょっと見つかりませんでした。
こういう場合、どのようにするのが良いのでしょうか?

編集 削除
魔界の仮面弁士  2004-04-02 16:16:55  No: 112620  IP: [192.*.*.*]

フォルダ選択ダイアログを使っては如何でしょうか。
フラグの指定で、ファイルも表示させられますよ。

ActiveXなら、ShellオブジェクトのBrowseForFolderメソッド、
APIなら、SHBroseForFolder関数ですね。

編集 削除
kei  2004-04-02 17:31:06  No: 112621  IP: [192.*.*.*]

ありがとうございます。
BrowseForFolderで検索したところ
http://madia.world.coocan.jp/vb/vb_bbs/200402_04020056.html
これが引っかかりました。
そのまま実行してみたのですが、フォルダしか表示されません。
どのフラグがファイル表示指定になるのでしょうか?

編集 削除
特攻隊長まるるう  2004-04-02 18:35:57  No: 112622  IP: [192.*.*.*]

ツリービューにフォルダの構成出してツリービュー選択時に
横のリストビューにファイル表示で自作してもそんなに難しく
ないですけどね。まぁ、出来てるものを利用するのは悪いこと
では無いと思います。おまけの情報としてカキコ…

編集 削除
oku  URL  2004-04-03 00:20:59  No: 112623  IP: [192.*.*.*]

ちゃんとファイルまで選択できましたよ。
BIF_BROWSEINCLUDEFILESをulFlagsにセットしてるので
出来るはずですが。
WinXP VB6.0SP5

編集 削除
魔界の仮面弁士  2004-04-03 01:41:45  No: 112624  IP: [192.*.*.*]

> そのまま実行してみたのですが、フォルダしか表示されません。
> どのフラグがファイル表示指定になるのでしょうか?

okuさんが答えてくださいっていますが、フォルダとファイルを表示するためのフラグは、BIF_BROWSEINCLUDEFILES です。

それでも動作しなかったのであれば、環境の問題が考えられます。

keiさんがお使いの環境は何ですか? BIF_BROWSEINCLUDEFILES を使うには、Shell32.DLL Ver.4.71以上の環境が要求されます。4.0系など、古い環境では利用できませんので、その場合は、特攻隊長まるるうさんが書かれた様に、TreeViewなどを使って自作する事も検討して見てください。

# ところでokuさん。WinXP + VB6.0SP5をお使いとの事ですが、
# XPのSP1aや、VB6のSP6は適用されないのですか?

編集 削除
kei  2004-04-03 12:34:20  No: 112625  IP: [192.*.*.*]

ありがとうございます。
環境を書くのを忘れていました・・・。
Win2000Server + VB6.0です。
SPの状態までは今ちょっと詳しくわかりません。
家のほうに環境がないので、すみませんが月曜日の出社後に試して結果を報告します。

編集 削除
oku  URL  2004-04-03 23:20:42  No: 112626  IP: [192.*.*.*]

おおー、いつのまにかVBのServicePack6出てたんですね。
昔SP5でマイクロソフトは終わりって誰かに聞いたので、
チェックしてませんでした。早速DLします。ありがとうございます。
OSはSP1 ビルド2600ですが、SP1aとは違うんですか?
Windows Updateは欠かさず行ってるんですけど。

編集 削除
魔界の仮面弁士  2004-04-04 00:17:33  No: 112627  IP: [192.*.*.*]

# 元質問からは脱線します。すみません。

》okuさん
> おおー、いつのまにかVBのServicePack6出てたんですね。
先々週にリリースされたばかりなので、知らない人も多いようですね。
http://www.microsoft.com/japan/msdn/vstudio/downloads/sp/VS6SP6.asp

> OSはSP1 ビルド2600ですが、
SP1が適用済みならば大丈夫ですよ。VBの方だけSPの記述があったので、
「OS側にはSPを適用していないのかな?」と思ってしまいました。(^^;

> SP1aとは違うんですか?
SP1aには、Javaアプレット動作用の Microsoft仮想マシンが
含まれていないという点を除けば、SP1と全く同じ物です。

[Windows XP SP1 と Windows XP SP1a の相違点]
http://support.microsoft.com/default.aspx?scid=kb;ja;813926

[Microsoft Java 仮想マシンからの移行]
http://www.microsoft.com/japan/java/default.asp

ついでに言うと、近いうちにXPのSP2も登場しますので、覚悟(?)しておいて下さい。(^^;)
(先日、事前セミナーも開かれました)
http://www.mspj.co.jp/wxpsp2dev/

> Windows Updateは欠かさず行ってるんですけど。
おぉ、常にOSを最新の状態に保っておくのは良い事ですね。(^^

Windows Updateの話が出たついでに、MSBA 1.2を紹介しておきます。(既に御存知だったら済みません)
http://www.microsoft.com/japan/technet/security/tools/mbsahome.asp
http://www.atmarkit.co.jp/fwin2k/operation/mbsa12-01/mbsa12-01_01.html

各種パッチを更新していても、設定がいい加減だったりすれば、セキュリティは万全とは言えませんよね。MSBAを使うと、そうしたセキュリティホールを報告してくれますので、一度試して見てください。

編集 削除
kei  2004-04-05 09:01:12  No: 112628  IP: [192.*.*.*]

確かめてみました。
環境はWin2000SP4、VB6.0SP5でした。
SP6が出てるんですね。
適用せねば。
Shell32.DLLは5.0.3700.6705でした。

フォルダの参照ダイアログなのですけど、選んだフォルダ名を表示するテキストボックスがあり、
その下にツリービューが表示されるだけです。
ただ、テキストボックスとCaptionバーの間にスペースがあるので、もしかするとその場所に
ファイル一覧が出るのが正常なのか?と思います。
もうちょっと調べてみます。

編集 削除
kei  2004-04-05 09:33:48  No: 112629  IP: [192.*.*.*]

あー、分かりました。
理解できましたというか勘違いしていました。
ファイルって、こういう形で表示されるんですね。
てっきりファイル一覧だけが別のスペースに表示されるのかとばかり思っていました。
ちょっと予想外でしたが、これでもいいかどうか確認したいと思います。
ダメなら自作ですね。
ありがとうございました。

編集 削除