indofraiser
indofraiser

Reputation: 1024

Getting files within folders

I want to view/show all files within both the folder I am looking at (/uploads) and then any sub folders within '/uploads'.

My question is can I easily do this based on the code I have, that works. (It read files in the folder and renames them)

 If Not IsPostBack Then
            'Dim pathIn As String
            Dim pathOut As String
            Dim vDate As String = DateTime.Now.ToString("yyyy-MM-dd")

            Dim filePaths() As String = Directory.GetFiles(Server.MapPath("~/Uploads/"))
            Dim files As List(Of ListItem) = New List(Of ListItem)
            For Each filePath As String In filePaths
                files.Add(New ListItem(Path.GetFileName(filePath), filePath))

                ' pathIn = filePath
                'RENAMES FILES HERE
                pathOut = "C:\sites\Examples\FilesInFolderList\Uploads\" & vDate & "_" & Replace(filePath, Server.MapPath("~/Uploads/"), "")

                '' Move the file.
                File.Move(filePath, pathOut)
                Console.WriteLine("{0} moved to {1}", filePath, pathOut)


            Next
            GridView1.DataSource = files
            GridView1.DataBind()
        End If

Upvotes: 0

Views: 115

Answers (1)

Justin Packwood
Justin Packwood

Reputation: 337

Using DirectoryInfo.GetFiles you can search sub directory's.

    If Not IsPostBack Then
        Dim pathOut As String
        Dim vDate As String = DateTime.Now.ToString("yyyy-MM-dd")
        Dim files As New List(Of ListItem)
        For Each File As FileInfo In New DirectoryInfo(Server.MapPath("~/Uploads/")).GetFiles("*.*", SearchOption.AllDirectories)
            files.Add(New ListItem(File.Name, File.FullName))
            pathOut = "C:\sites\Examples\FilesInFolderList\Uploads\" & vDate & "_" & File.Name
            Console.WriteLine("{0} moving to {1}", File.FullName, pathOut)
            File.MoveTo(pathOut)
        Next
        GridView1.DataSource = files
        GridView1.DataBind()
    End If

Upvotes: 2

Related Questions