搜索计算机vb.net中所有驱动器的所有jpg

时间:2015-07-01 16:42:21

标签: vb.net search

我想列出计算机中所有驱动器中的所有JPG文件,并显示完整路径。 所以我尝试了下面的代码,但它只列出了几个随机文件,它不会搜索所有文件。我从这里得到了这个:Searching a drive with vb.net

Public Sub DirSearch(ByVal sDir As String)
    Dim fl As String

    Try
        For Each dir As String In Directory.GetDirectories(sDir)
            For Each fl In Directory.GetFiles(dir, "*.jpg")
                listbox1.Items.Add(fl)

            Next

            DirSearch(dir)
        Next


    Catch ex As Exception
        Debug.WriteLine(ex.Message)
    End Try
End Sub

'form1加载事件

 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    DirSearch("c:\")
    DirSearch("d:\")
    DirSearch("e:\")
    DirSearch("f:\")
    DirSearch("g:\")
    DirSearch("h:\")
    DirSearch("i:\")
    DirSearch("j:\")
    DirSearch("k:\")
    'DirSearch("so on.....")
    savetxtfile()

   End Sub

将搜索结果保存到系统驱动器中的文本文件

Sub savetxtfile()
    Dim systemdrv As String = Mid(Environment.GetFolderPath(Environment.SpecialFolder.System), 1, 3)


    TextBox1.Text = listbox1.Items.Count
    Dim w As IO.StreamWriter
    Dim r As IO.StreamReader

    Dim i As Integer
    w = New IO.StreamWriter(systemdrv + "temp\test.txt")
    For i = 0 To listbox1.Items.Count - 1
        w.WriteLine(listbox1.Items.Item(i))
    Next
    w.Close()
End Sub

1 个答案:

答案 0 :(得分:0)

你忽略了你的例外......

Debug.WriteLine(ex.Message)

请改用它(所以你不能错过调试)......

MessageBox.Show(ex.Message)

知道发生了什么可能是文件夹访问错误,您需要相应地处理它。

For Each dir As String In Directory.GetDirectories(sDir)
    Try
        For Each fl In Directory.GetFiles(dir, "*.jpg")
            lstbxTest.Items.Add(fl)
        Next
    Catch ex As Exception
        Continue For
    End Try
Next

有效的是,如果你收到错误就继续,因为你在这种情况下并不在意。

您可能希望在其中添加一些例外(如果dir =“whatever”,然后继续),这样您就不会尝试浏览操作系统中的每个系统文件夹。