ダイアログにて選択されたフォルダ以下のファイル及びフォルダ情報を
リストボックスにADDしていくツールを開発しております。
標準のOCXにて開発することが前提で、
現在一覧表示するために、取得したパスをDirListBoxに渡し、フォルダ情報を
取得したのちに、取得したフォルダのパスをFileListBoxに渡す、、、といった
コーディングをしております。
そこで、質問なのですが
隠しフォルダの取得をするにはどうしたらいいでしょうか?
隠しファイルの方は、FileListBoxのプロパティに
【Hidden】という値がありましたので【TRUE】にすることにより
解決しました。
DirListBoxには、FileListBoxのように【Hidden】というプロパティが
ありません。
どなたかご教授願います。
すいません。補足です。
【開発環境】
・Windows2000
・Visual Basic5.0
CodeGuruより。。。
Option Explicit
Private Const LB_DIR = &H18D
Private Const LB_RESETCONTENT = &H184
Private Const DDL_ARCHIVE = &H20
Private Const DDL_DIRECTORY = &H10
Private Const DDL_DRIVES = &H4000
Private Const DDL_EXCLUSIVE = &H8000
Private Const DDL_HIDDEN = &H2&
Private Const DDL_READONLY = &H1
Private Const DDL_READWRITE = &H0
Private Const DDL_SYSTEM = &H4
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Sub Command1_Click()
Dim sPattern() As String
Dim i As Integer
SendMessage File1.hwnd, LB_RESETCONTENT, 0, 0
sPattern = Split(File1.Pattern, ";")
For i = 0 To UBound(sPattern)
SendMessage File1.hwnd, LB_DIR, DDL_ARCHIVE Or DDL_HIDDEN, ByVal Replace(File1.Path & "\" & Trim(sPattern(i)), "\\", "\")
Next i
End Sub
すいません、寝ぼけてました。
上記は、ファイルリストボックスだった ;;
隠しフォルダを取得し、リストボックスに表示するものは
一応作りました。
http://helloweb.ddo.jp/BBS/Bbs.htm
の
[VB6(SP6)] 隠しフォルダの列挙.LZH
です。
標準コントロールでは、難しいですね。
もうひとつの方法は、
Windowsエクスプローラの表示設定を動的に
変える方法ですね。
ご返信ありがとうございます。
わざわざ作っていただけるなんて。。。。
標準コントロールでは、やはり困難なようですね。
今現在考えておりますのが、
コマンドプロンプトにてDIRコマンドを実行し
隠しフォルダのみの取得をした後にテキストに吐く。
その後、VBにて一行ずつ読み込み、フォルダ情報を
取得しようかと考えております。
隠しフォルダの中には、隠しと通常のフォルダが
当然存在しますので、
なかなか難しいです・・・・・。^^;
ご返信ありがとうございました。
あと、凄く初歩的な質問で申し訳ありませんが、
上記提供して頂いたソースがDownLoadできませんでした^^;
ログオンしないとDownLoadできないようです^^;
すいません、掲示板にてアカウント作成したら
問題なくDownLoadできました。
確認もせず発言してしまい、もうしわけありませんでした。
頂いたソースを元に、考えてみたいと
思います。
ありがとうございました。
ツイート | ![]() |