使用vb.net从子目录中获取文件

时间:2013-11-15 10:24:10

标签: vb.net file datagrid directory

我有一个导演,其中包含许多文件夹,例如 folder1,folder2,folder3 等...其中包含子目录..我有一个文件夹名称 "special" ,其中包含一些文件

现在我想根据子目录的名称获取所有这些文件

示例:

C:\Users\desktop\Myfolder\folder1\special\
C:\Users\desktop\Myfolder\folder2\special\
C:\Users\desktop\Myfolder\folder3\special\
C:\Users\desktop\Myfolder\folder4\special\

现在我需要从所有folder1,folder2,folder3和folder4的每个特殊文件夹中获取所有文件,并在gridview中显示它们。

3 个答案:

答案 0 :(得分:0)

如果您的datagridview是datagridview1并且计算了两列,并且您想要添加名称文件,那么最后修改的是解决方案..

    For Each sDir In Directory.GetDirectories("C:\Users\desktop\Myfolder\", "special", SearchOption.AllDirectories)
        For Each File In Directory.GetFiles(sDir)
            Dim detailedfile As New IO.FileInfo(File)
            DataGridView1.Rows.Add(detailedfile.Name, detailedfile.LastAccessTime)
        Next

如果您想在gridview中添加更多详细信息,则只需在columns

中添加更多the DataGridView1.Rows.Add个和更多整数

答案 1 :(得分:0)

我刚刚处理了您的案例,我认为以下代码符合您的要求。给定的代码将遍历目录,如果文件名位于special目录下,则显示文件名。如果我错误地回答了您的问题,请回复我。

程序,

Private Sub GetFiles(ByVal xPath As String)

        Try

            If Directory.GetDirectories(xPath).Length > 0 Then
                For Each xDir As String In Directory.GetDirectories(xPath)
                    If Directory.Exists(xDir) Then
                        GetFiles(xDir)
                    End If
                Next
            End If

            If Directory.GetFiles(xPath).Length > 0 Then
                For Each xDir As String In Directory.GetFiles(xPath)
                    If UCase(Path.GetDirectoryName(xDir)).EndsWith("SPECIAL") Then
                        MsgBox(Path.GetFileName(xDir))
                    End If
                Next
            End If

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Sub

和电话,

 call GetFiles("D:\test")

答案 2 :(得分:0)

grid1.DataSource = (From p1 In IO.Directory.GetFiles("C:\Users\desktop\Myfolder\", "*", IO.SearchOption.AllDirectories)
                    Where p1.Contains("\special\"))

grid1.DataBind()