c# - 如何在 asp.net 中按顺序从目录中获取文件?

标签 c# asp.net linq io directory

我正在使用 c# 语言从 asp.net 的目录中获取文件:

string[] array=Directory.GetFiles(Server.MapPath("Image"));

我的图片文件夹有Image1.jpg、Image2.jpg、Image3.jpg......Image100.jpg等图片。

我的问题是,我没有按顺序获取图像文件。我如何获取图像文件以便从 Image1 到 Image100....

是的...我自己解决了...这是解决方案:

var arr = (from u in Directory.GetFiles(Server.MapPath("Images")) let fi = new FileInfo(u) orderby fi.CreationTime select u);

最佳答案

使用 LINQ OrderBy:

string[] array = Directory.GetFiles(Server.MapPath("Image"))
                          .OrderBy(x => x)
                          .ToArray();

或者不使用 LINQ,使用 Array.Sort 方法:

string[] array = Directory.GetFiles(Server.MapPath("Image"));
Array.Sort(array);

但它将使用默认字符串比较进行排序,因此 Image100 将在 Image2 之前。

仅使用数字排序会有点棘手,但您可以使用 linq 来完成:

string[] array = (from f in Directory.GetFiles(Server.MapPath("Image"))
                  let n = int.Parse(f.Replace("Image", string.Empty).Replace(".jpg", string.Empty))
                  order by n
                  select f).ToArray();

关于c# - 如何在 asp.net 中按顺序从目录中获取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18779577/

相关文章:

c# - 使用 linq2sql/datacontext 将记录插入数据库

c# - 使用反射将项目添加到通用 List<T>

c# - 在同一解决方案中找不到引用

c# - 是否可以将非主键设置为另一个表中的外键?

c# - 在 Xamarin Studio 中打开 Visual Studio 项目时出现 "Version string portion was too short or too long"

c# - 在 QueryString 中指定 returnURL

c# - 在 ASP.NET 中第一次单击时按钮 OnClick 没有触发?

c# - 使用 linq 聚合文本文件内容,以便将它们分组

c# - 自定义 ASP.NET MVC 表单例份验证

linq - .Net 4.0 中有哪些实现 IQueryable<T> 的可实例化类型可用?