【问题标题】:Searching all jpg's from all drives in a computer vb.net从计算机 vb.net 的所有驱动器中搜索所有 jpg
【发布时间】:2015-07-01 16:42:20
【问题描述】:

我想用完整路径列出计算机中所有驱动器中的所有 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

【问题讨论】:

    标签: vb.net search


    【解决方案1】:

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

    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" Then Continue For),这样您就不会尝试遍历操作系统中的每个系统文件夹。

    【讨论】:

    • 它在For Loop 内。你需要检查你的代码。我改变了我的(你的),以便它可以捕获错误但忽略它们和Continue For
    猜你喜欢
    • 2015-10-21
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    相关资源
    最近更新 更多