按修改日期VB筛选文件和顺序

时间:2019-02-01 09:08:32

标签: vb.net visual-studio lambda

我正在按多个扩展名过滤文件,我想按文件日期排序。

我正在尝试 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

2 个答案:

答案 0 :(得分:1)

我建议您使用DirectoryInfoFileInfo类:

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)中使用了它,因此有点子查询。您需要最后应用订购。另外,SelectManyp的路径,您需要String

File.GetLastWriteTime