对数组中的文件名按最近创建的日期/时间降序排序

本文关键字:日期 时间 创建 降序 排序 最近 数组 文件名 | 更新日期: 2023-09-27 18:07:07

我正在构建多个图像库中所有文件的主数组,我希望图像按创建日期/时间降序显示。我需要帮助在我的脚本中实现OrderBy。这是正确的做法吗?我真的需要一些指导。

// Build Gallery Array
        string[] arctopithecusImages = Directory.GetFiles(arctopithecusGalleryPath, "*.jpg");
        string[] gulonImages = Directory.GetFiles(gulonGalleryPath, "*.jpg");
        string[] scythianWolfImages = Directory.GetFiles(scythianWolfGalleryPath, "*.jpg");
        string[] simivulpaImages = Directory.GetFiles(simivulpaGalleryPath, "*.jpg");
        string[] succorathImages = Directory.GetFiles(succorathGalleryPath, "*.jpg");
        string[] tatusImages = Directory.GetFiles(tatusGalleryPath, "*.jpg");
        // Concatenate Gallery Folders into single Array
        galleryImages = 
            Directory.GetFiles(arctopithecusGalleryPath, "*.jpg")
                .Concat(gulonImages)
                .Concat(scythianWolfImages)
                .Concat(simivulpaImages)
                .Concat(succorathImages)
                .Concat(tatusImages).OrderBy(f => f.All)
                .ToArray();

对数组中的文件名按最近创建的日期/时间降序排序

我认为你应该使用DirectoryInfo类。它将为您提供的不仅仅是文件名。然后你就可以按文件属性

排序了
DirectoryInfo diArctopithecusDirectory = new DirectoryInfo(arctopithecusGalleryPath);
FileInfo[] arctopithecusImages = diArctopithecusDirectory.GetFiles("*.jpg");
DirectoryInfo diGulonImagesDirectory = new DirectoryInfo(gulonGalleryPath);
FileInfo[] arctopithecusImages = diGulonImagesDirectory.GetFiles("*.jpg");
DirectoryInfo diScythianWolfDirectory = new DirectoryInfo(scythianWolfGalleryPath);
FileInfo[] scythianWolfImages = diScythianWolfDirectory.GetFiles("*.jpg");
FileInfo[]  result = arctopithecusImages.Union(arctopithecusImages)
                    .Union(scythianWolfImages)
                    .OrderByDescending(p => p.CreationTime)
                    .ToArray();

如果你只需要文件名,你可以这样做

string[] result = arctopithecusImages.Union(arctopithecusImages)
                                    .Union(scythianWolfImages)
                                    .OrderByDescending(p => p.CreationTime)
                                    .Select(x => x.Name)
                                    .ToArray();