none
請問一下vb.net 2005有類似vb6, DriveListBox、DirListBox、FileListBoxy這些元件嗎? RRS feed

解答

  • 除非必要,不要再使用 VB6 控制項 .

     

    1. DriveListBox 可以用 ListBox 搭配 System.IO.DriveInfo 來實作 .

    2. DirListBox 可以用 ListBox 搭配 System.IO.DirectoryInfo 來實作 .

    3. FileListBox 可以用 ListBox 搭配 System.IO.DirectoryInfo.GetFiles() 列舉 FileInfo 資訊來實作 .

    2007年7月20日 下午 02:49
    版主
  • Dear Sir

    不久之前有相關討論關於檔案總管介面、實作部分,我想可以一併參考看看

    http://forums.microsoft.com/msdn-cht/ShowPost.aspx?PostID=1784815&SiteID=14

    2007年7月20日 下午 04:00
    版主
  • Dear Sir

    下面是之前整理的一小段,詳細資料可以找書或是參考MSDN

     

    相關參考

    http://msdn2.microsoft.com/zh-tw/library/system.io(VS.80).aspx

     

    部分範例

    Code Snippet

          傳回指定路徑的根目錄

            Dim S As String = ""

            S = IO.Directory.GetDirectoryRoot("C:\MyDir\Test")

            Note 傳回C:\

            S = IO.Directory.GetDirectoryRoot("C:\MyDir\")

            Note 傳回C:\

          取得檔案列表(多載)

            假設我有一個目錄叫MyDir, 裡面有一個子資料夾叫作Test以及有

          3個文字檔叫file1.txt, file2.txt, file3.txt, 一個圖片檔叫img.jpg

            1.) 取得目錄下所有檔案

            Dim StrArr() As String

            StrArr = IO.Directory.GetFiles("C:\MyDir\")

            For Each s As String In StrArr

                Debug.Print(s)

            Next

            Note(傳回結果)

            C:\MyDir\file1.txt

            C:\MyDir\file2.txt

            C:\MyDir\file3.txt

            C:\MyDir\img.jpg

            2.) 取得目錄下符合特定名稱的檔案

            Dim StrArr() As String

            StrArr = IO.Directory.GetFiles("C:\MyDir\", "*.txt")

            For Each s As String In StrArr

                Debug.Print(s)

            Next

            Note(傳回結果)

            C:\MyDir\file1.txt

            C:\MyDir\file2.txt

            C:\MyDir\file3.txt

            C:\MyDir\test.txt

            3.) 取得目錄下符合特定名稱的檔案並且包含子目錄

            Dim StrArr() As String

            StrArr = IO.Directory.GetFiles("C:\MyDir\", "*.txt", IO.SearchOption.AllDirectories)

            For Each s As String In StrArr

                Debug.Print(s)

            Next

            Note(傳回結果)

    C:\MyDir\file1.txt

            C:\MyDir\file2.txt

            C:\MyDir\file3.txt

            C:\MyDir\Test\Ffile100.txt

          取得指定目錄下的目錄名稱以及所有檔案名稱

            Dim StrArr() As String

            StrArr = IO.Directory.GetFileSystemEntries("C:\MyDir")

            For Each s As String In StrArr

                Debug.Print(s)

            Next

            Note(傳回結果)

            C:\MyDir\file1.txt

            C:\MyDir\file2.txt

            C:\MyDir\file3.txt

            C:\MyDir\img.jpg

            C:\MyDir\Test

            Dim StrArr() As String

            StrArr = IO.Directory.GetFileSystemEntries("C:\MyDir", "test*")

            For Each s As String In StrArr

                Debug.Print(s)

            Next

            Note(傳回結果)

            C:\MyDir\Test

     

    Code Snippet

          建立新的資料夾

            IO.Directory.CreateDirectory("C:\MyDir")

    刪除資料夾(多載)

            1.)

    IO.Directory.Delete("C:\MyDir")

            Note 如果資料夾裡面不是空的則會丟回錯誤訊息"目錄不是空的"

            2.)

    IO.Directory.Delete("C:\MyDir", False)

            Note 第一個參數是路徑, 第二個參數式是要不要移除目錄下的子目錄或檔案

            第二個參數為False時如果資料夾裡面有目錄或檔案便不會將目錄刪除也不會有錯誤訊息

            第二個參數為True時不管資料夾內是否有其他檔案或目錄都會將其刪除

          判斷資料夾是否存在

            IO.Directory.Exists("C:\MyDir")

            Note 存在傳回True反之傳回False

          取得目錄建立的時間

            Dim CreateDate As Date

            CreateDate = IO.Directory.GetCreationTime("C:\MyDir")

            MessageBox.Show(CreateDate.ToString)

            Note 如果目錄不存在並不會丟回錯誤訊息,實際測試時丟回1601/1/1 上午08:00:00

          取得目錄建立的時間,以UTC時間傳回

            Dim CreateDate As Date

            CreateDate = IO.Directory.GetCreationTimeUtc("C:\MyDir")

            MessageBox.Show(CreateDate.ToString)

            Note 如果目錄不存在並不會丟回錯誤訊息,實際測試時丟回1601/1/1 上午12:00:00

          取得目前的工作目錄(exe檔所在的位置)

            MessageBox.Show(IO.Directory.GetCurrentDirectory())

     取得目錄中所包含的子目錄(多載)

            假設我有一個目錄,下面有SubDir1~SubDir9的目錄與一個test資料夾,在test資料夾裡面有一個SubDir100資料夾

            1.)

            Dim DirName() As String

            DirName = IO.Directory.GetDirectories("C:\MyDir")

            For Each s As String In DirName

                Debug.Print(s)

            Next

         ''傳回結果

            C:\MyDir\SubDir1

            C:\MyDir\SubDir2

            C:\MyDir\SubDir3

            C:\MyDir\SubDir4

            C:\MyDir\SubDir5

            C:\MyDir\SubDir6

            C:\MyDir\SubDir7

            C:\MyDir\SubDir8

            C:\MyDir\SubDir9

            C:\MyDir\test

            2.) 第二個參數為利用條件搜索

            Dim DirName() As String

            DirName = IO.Directory.GetDirectories("C:\MyDir", "SubDir*")

            For Each s As String In DirName

                Debug.Print(s)

            Next

         ''傳回結果

            C:\MyDir\SubDir1

            C:\MyDir\SubDir2

            C:\MyDir\SubDir3

            C:\MyDir\SubDir4

            C:\MyDir\SubDir5

            C:\MyDir\SubDir6

            C:\MyDir\SubDir7

            C:\MyDir\SubDir8

            C:\MyDir\SubDir9

            3.) 第二個參數為利用條件搜索,第三個參數是要不要搜尋子資料夾中的子資料夾

            Dim DirName() As String

            DirName = IO.Directory.GetDirectories("C:\MyDir", "SubDir*", IO.SearchOption.AllDirectories)

            For Each s As String In DirName

                Debug.Print(s)

            Next

         ''傳回結果

            C:\MyDir\SubDir1

            C:\MyDir\SubDir2

            C:\MyDir\SubDir3

            C:\MyDir\SubDir4

            C:\MyDir\SubDir5

            C:\MyDir\SubDir6

            C:\MyDir\SubDir7

            C:\MyDir\SubDir8

            C:\MyDir\SubDir9

            C:\MyDir\test\SubDir100

     

    2007年7月21日 上午 11:30
    版主

所有回覆

  • 除非必要,不要再使用 VB6 控制項 .

     

    1. DriveListBox 可以用 ListBox 搭配 System.IO.DriveInfo 來實作 .

    2. DirListBox 可以用 ListBox 搭配 System.IO.DirectoryInfo 來實作 .

    3. FileListBox 可以用 ListBox 搭配 System.IO.DirectoryInfo.GetFiles() 列舉 FileInfo 資訊來實作 .

    2007年7月20日 下午 02:49
    版主
  • Dear Sir

    不久之前有相關討論關於檔案總管介面、實作部分,我想可以一併參考看看

    http://forums.microsoft.com/msdn-cht/ShowPost.aspx?PostID=1784815&SiteID=14

    2007年7月20日 下午 04:00
    版主
  •  bauann 寫信:

    Dear Sir

    不久之前有相關討論關於檔案總管介面、實作部分,我想可以一併參考看看

    http://forums.microsoft.com/msdn-cht/ShowPost.aspx?PostID=1784815&SiteID=14

     

    感謝!

    劣者有稍微看了一下,http://www.c-sharpcorner.com/UploadFile/casperboekhoudt/FileDialogCB11202005231153PM/FileDialogCB.aspx

    裡所用的比較像我想弄出類似cuteftp的介面...

    但它是引用vb6的東西!!

    不知是否有system.io的範例可以參考?

    2007年7月20日 下午 04:36
  •  小朱 寫信:

    除非必要,不要再使用 VB6 控制項 .

     

    1. DriveListBox 可以用 ListBox 搭配 System.IO.DriveInfo 來實作 .

    2. DirListBox 可以用 ListBox 搭配 System.IO.DirectoryInfo 來實作 .

    3. FileListBox 可以用 ListBox 搭配 System.IO.DirectoryInfo.GetFiles() 列舉 FileInfo 資訊來實作 .

     

    請問大大是否有範例可供參考system.io.xx要如何使用?

    因為劣者剛接vb.net,不是很清楚使用方法!

     

    劣者是想寫一個基本的ftpclient,目前已完成連線部份,想把這些功能(DriveListBox 、DirListBox 、FileListBox )加在form的中間空的地方!如下圖:

    http://www.flickr.com/photos/10299241@N06/858954593/

     

    麻煩諸位高手指點,謝謝!!

     

    2007年7月20日 下午 04:39
  • :::在工具箱上按滑鼠右鍵,選擇 選擇項目-.Net Framework元件頁籤

    裡面就有DriveListBox 、DirListBox 、FileListBox

    2007年7月21日 上午 02:29
  •  小琳 寫信:

    :::在工具箱上按滑鼠右鍵,選擇 選擇項目-.Net Framework元件頁籤

    裡面就有DriveListBox 、DirListBox 、FileListBox

     

    嗯...

    這個就是我上面看到http://www.c-sharpcorner.com/UploadFile/casperboekhoudt/FileDialogCB11202005231153PM/FileDialogCB.aspx

    引用"vb6"的元件......

    但上面那位大大說盡可能避免使用vb6的元件...so才問system.io的用法!

    請問你會system.io的用法嗎?

    謝謝你的回覆!
    2007年7月21日 上午 02:44
  • Dear Sir

    下面是之前整理的一小段,詳細資料可以找書或是參考MSDN

     

    相關參考

    http://msdn2.microsoft.com/zh-tw/library/system.io(VS.80).aspx

     

    部分範例

    Code Snippet

          傳回指定路徑的根目錄

            Dim S As String = ""

            S = IO.Directory.GetDirectoryRoot("C:\MyDir\Test")

            Note 傳回C:\

            S = IO.Directory.GetDirectoryRoot("C:\MyDir\")

            Note 傳回C:\

          取得檔案列表(多載)

            假設我有一個目錄叫MyDir, 裡面有一個子資料夾叫作Test以及有

          3個文字檔叫file1.txt, file2.txt, file3.txt, 一個圖片檔叫img.jpg

            1.) 取得目錄下所有檔案

            Dim StrArr() As String

            StrArr = IO.Directory.GetFiles("C:\MyDir\")

            For Each s As String In StrArr

                Debug.Print(s)

            Next

            Note(傳回結果)

            C:\MyDir\file1.txt

            C:\MyDir\file2.txt

            C:\MyDir\file3.txt

            C:\MyDir\img.jpg

            2.) 取得目錄下符合特定名稱的檔案

            Dim StrArr() As String

            StrArr = IO.Directory.GetFiles("C:\MyDir\", "*.txt")

            For Each s As String In StrArr

                Debug.Print(s)

            Next

            Note(傳回結果)

            C:\MyDir\file1.txt

            C:\MyDir\file2.txt

            C:\MyDir\file3.txt

            C:\MyDir\test.txt

            3.) 取得目錄下符合特定名稱的檔案並且包含子目錄

            Dim StrArr() As String

            StrArr = IO.Directory.GetFiles("C:\MyDir\", "*.txt", IO.SearchOption.AllDirectories)

            For Each s As String In StrArr

                Debug.Print(s)

            Next

            Note(傳回結果)

    C:\MyDir\file1.txt

            C:\MyDir\file2.txt

            C:\MyDir\file3.txt

            C:\MyDir\Test\Ffile100.txt

          取得指定目錄下的目錄名稱以及所有檔案名稱

            Dim StrArr() As String

            StrArr = IO.Directory.GetFileSystemEntries("C:\MyDir")

            For Each s As String In StrArr

                Debug.Print(s)

            Next

            Note(傳回結果)

            C:\MyDir\file1.txt

            C:\MyDir\file2.txt

            C:\MyDir\file3.txt

            C:\MyDir\img.jpg

            C:\MyDir\Test

            Dim StrArr() As String

            StrArr = IO.Directory.GetFileSystemEntries("C:\MyDir", "test*")

            For Each s As String In StrArr

                Debug.Print(s)

            Next

            Note(傳回結果)

            C:\MyDir\Test

     

    Code Snippet

          建立新的資料夾

            IO.Directory.CreateDirectory("C:\MyDir")

    刪除資料夾(多載)

            1.)

    IO.Directory.Delete("C:\MyDir")

            Note 如果資料夾裡面不是空的則會丟回錯誤訊息"目錄不是空的"

            2.)

    IO.Directory.Delete("C:\MyDir", False)

            Note 第一個參數是路徑, 第二個參數式是要不要移除目錄下的子目錄或檔案

            第二個參數為False時如果資料夾裡面有目錄或檔案便不會將目錄刪除也不會有錯誤訊息

            第二個參數為True時不管資料夾內是否有其他檔案或目錄都會將其刪除

          判斷資料夾是否存在

            IO.Directory.Exists("C:\MyDir")

            Note 存在傳回True反之傳回False

          取得目錄建立的時間

            Dim CreateDate As Date

            CreateDate = IO.Directory.GetCreationTime("C:\MyDir")

            MessageBox.Show(CreateDate.ToString)

            Note 如果目錄不存在並不會丟回錯誤訊息,實際測試時丟回1601/1/1 上午08:00:00

          取得目錄建立的時間,以UTC時間傳回

            Dim CreateDate As Date

            CreateDate = IO.Directory.GetCreationTimeUtc("C:\MyDir")

            MessageBox.Show(CreateDate.ToString)

            Note 如果目錄不存在並不會丟回錯誤訊息,實際測試時丟回1601/1/1 上午12:00:00

          取得目前的工作目錄(exe檔所在的位置)

            MessageBox.Show(IO.Directory.GetCurrentDirectory())

     取得目錄中所包含的子目錄(多載)

            假設我有一個目錄,下面有SubDir1~SubDir9的目錄與一個test資料夾,在test資料夾裡面有一個SubDir100資料夾

            1.)

            Dim DirName() As String

            DirName = IO.Directory.GetDirectories("C:\MyDir")

            For Each s As String In DirName

                Debug.Print(s)

            Next

         ''傳回結果

            C:\MyDir\SubDir1

            C:\MyDir\SubDir2

            C:\MyDir\SubDir3

            C:\MyDir\SubDir4

            C:\MyDir\SubDir5

            C:\MyDir\SubDir6

            C:\MyDir\SubDir7

            C:\MyDir\SubDir8

            C:\MyDir\SubDir9

            C:\MyDir\test

            2.) 第二個參數為利用條件搜索

            Dim DirName() As String

            DirName = IO.Directory.GetDirectories("C:\MyDir", "SubDir*")

            For Each s As String In DirName

                Debug.Print(s)

            Next

         ''傳回結果

            C:\MyDir\SubDir1

            C:\MyDir\SubDir2

            C:\MyDir\SubDir3

            C:\MyDir\SubDir4

            C:\MyDir\SubDir5

            C:\MyDir\SubDir6

            C:\MyDir\SubDir7

            C:\MyDir\SubDir8

            C:\MyDir\SubDir9

            3.) 第二個參數為利用條件搜索,第三個參數是要不要搜尋子資料夾中的子資料夾

            Dim DirName() As String

            DirName = IO.Directory.GetDirectories("C:\MyDir", "SubDir*", IO.SearchOption.AllDirectories)

            For Each s As String In DirName

                Debug.Print(s)

            Next

         ''傳回結果

            C:\MyDir\SubDir1

            C:\MyDir\SubDir2

            C:\MyDir\SubDir3

            C:\MyDir\SubDir4

            C:\MyDir\SubDir5

            C:\MyDir\SubDir6

            C:\MyDir\SubDir7

            C:\MyDir\SubDir8

            C:\MyDir\SubDir9

            C:\MyDir\test\SubDir100

     

    2007年7月21日 上午 11:30
    版主
  • 感謝...

    我試看看....有問題再請教大家!

     

    2007年7月21日 下午 05:10
  • 我再先前討論那篇又補了一個範例連結
    2007年7月22日 上午 02:43
    版主
  •  璉璉 寫信:
    我再先前討論那篇又補了一個範例連結

     

    那個範例在切換設計模式時會有些警告訊息,但仍能compile,compile後...imagelist的功用不見了!!

    請問一下,此範例所使用的DriveCombo及DirFileList元件是另外找的嗎?

    因為vb.net 2005似乎沒有看到此兩個元件!

    看圖的框框可以顯示Name、Type、Size等資訊...是要加上語法嗎?還是該元件本身就有此功能?

    另外,在那篇討論有個"File Explorer Look andFeel",它是使用dataGridview! 但不曉得dataGridview如何使用才能呈現那個效果(顯示Name、Type、Size等資訊)

    若要呈現類似cuteftp介面,使用哪個元件來實現會比較容易?

     

     

    2007年7月26日 上午 12:55