Получение файлов в папках
Я хочу просмотреть / показать все файлы как в папке, которую я просматриваю (/uploads), так и во всех подпапках в '/uploads'.
Мой вопрос заключается в том, могу ли я легко сделать это на основе имеющегося кода, который работает. (Он читает файлы в папке и переименовывает их)
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
1 ответ
Решение
Используя DirectoryInfo.GetFiles, вы можете искать в подкаталогах.
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