tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
ツリービューにフォルダとファイルを表示する(VB6.0) ( No.0 )  [親スレッドへ]
日時: 2009/12/26 23:01
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[ツリービュー][ファイル][]                                       *
* キーワード:全ファイル,サブフォルダー以下,,,,                                   *
***********************************************************************************

元質問:ツリービューにフォルダとファイルを表示す.. - kazuki  2005/11/29-01:31 No.5109

現在ブラウザを作成しているのですが、お気に入りを表示する際ツリービューでやっています。
それでツリービューにお気に入りのフォルダとurlファイルを表示させたいのですが、階層構造にさせ
ることができません。プログラムはこちらのサイト様の"指定フォルダー以下の全ファイルを列
挙"の
サンプルプログラムを参考にさせていただきました。
下にプログラムを書かせていただきますが、このプログラムを実行するとお気に入りに入っている全
てのファイルがフルパスで表示され、フォルダはまた別で表示されます。
(aaaというフォルダにbbbというurlファイルがあったらaaa\bbbとaaaという感じです)


-----------------------------------------------------------------------------------
投稿されているサンプルでは、そのままでは動作しませんので簡単なサンプルを作って
見ました。   2007/07/22
              --- by 花ちゃん ---
-----------------------------------------------------------------------------------

'使用する前に、[プロジェクト]→[参照設定]で Microsoft Scripting Runtime の参照に
'チェックを入れておいて下さい。
Option Explicit
Private Sub Command1_Click()
    Dim Fso          As FileSystemObject
    Dim TargetFolder As Folder
    Dim TargetNode   As Node
    Set Fso = New FileSystemObject
    
    TreeView1.Nodes.Clear
    '指定のフォルダ名を取得
    Set TargetFolder = Fso.GetFolder("C:\Program Files\Microsoft Visual Studio")
    '指定フォルダのフルパスを取得
    Set TargetNode = TreeView1.Nodes.Add(, , , TargetFolder)
    '指定フォルダ内のファイル及びサブフォルダを取得
    Call sFolderSearch(TreeView1, TargetNode, TargetFolder)
    TreeView1.Nodes(1).Expanded = True
    TreeView1.Nodes(2).Expanded = True
    Set Fso = Nothing
End Sub
Private Sub sFolderSearch(ByVal MyTreeView As TreeView, _
                          ByVal MyNode As Node, ByVal MyFolder As Folder)
    Dim mySubFolder As Folder
    Dim myFile      As File
    Dim ChildNode   As Node
    'サブフォルダーを取得
    For Each mySubFolder In MyFolder.SubFolders
        'フォルダーをツリー表示
        Set ChildNode = MyTreeView.Nodes.Add(MyNode, tvwChild, , mySubFolder.Name)
        'サブフォルダーがある場合再帰的に繰り返す
        Call sFolderSearch(MyTreeView, ChildNode, mySubFolder)
    Next mySubFolder
    '現在のフォルダー内のファイルを取得
    For Each myFile In MyFolder.Files
        'ファイルをツリー表示
        MyTreeView.Nodes.Add MyNode, tvwChild, , myFile.Name
    Next myFile
End Sub

----------------------------------------------------------------------------------
上記の実行結果
(画像をクリックすると元のサイズで見られます。)



 [スレッド一覧へ] [親スレッドへ]