我正在按多个扩展名过滤文件,我想按文件日期排序。
我正在尝试 GetFiles()。OrderByDescending(Function(p)p.LastWriteTime)
但是不能这样订购。
Dim driver As DriveInfo = DriveInfo.GetDrives().Where(Function(x) x.DriveType = DriveType.Removable).FirstOrDefault
If driver IsNot Nothing AndAlso driver.IsReady Then
UsbRootPath = Path.GetPathRoot(driver.RootDirectory.ToString)
Dim ext = {".png", ".jpg", "*.zip"}
Dim rootFiles() As String = ext.SelectMany(Function(f) Directory.GetFiles(driver.RootDirectory.ToString, f, SearchOption.TopDirectoryOnly)).ToArray()
End If
答案 0 :(得分:1)
我建议您使用DirectoryInfo
和FileInfo
类:
Dim fileInfos = extensions.SelectMany(Function(ext) New DirectoryInfo(driver.RootDirectory.FullName).
GetFiles("*" & ext)).
OrderBy(Function(fi) fi.LastWriteTime)
您在那里所做的正是取决于您想要的东西。如果您想要数组中每个文件的完整路径:
Dim filePaths = fileInfos.Select(Function(fi) fi.FullName).ToArray()
答案 1 :(得分:1)
我正在尝试
onError
嗯,那是行不通的,因为您在GetFiles().OrderByDescending(Function(p) p.LastWriteTime)
中使用了它,因此有点子查询。您需要最后应用订购。另外,SelectMany
是p
的路径,您需要String
:
File.GetLastWriteTime