gpt4 book ai didi

c# - 如何按照上次在 asp.net-webpages 中修改的日期顺序对 .GetFiles() 中的字符串数组进行排序?

转载 作者:太空宇宙 更新时间:2023-11-03 20:17:07 26 4
gpt4 key购买 nike

我在这里看到了一个非常接近的例子:

Sorting Files by date

但我是 LINQ 的新手,无法让它工作(不确定我是否理解 DirectoryInfo 或 FileInfo 类)。

以下是必要的代码片段:

(给数组赋值时):

string[] files = Directory.GetFiles(Server.MapPath("~/User_Saves/" + WebSecurity.CurrentUserName), "*.xml");

for(int i = 0; i < files.Length; i++)
{
files[i] = files[i].Substring(files[i].LastIndexOf("\\") + 1);
files[i] = files[i].Substring(0, files[i].Length - 4);
}

(最后一部分,即“for 循环”,只是从字符串中去除文件路径和唯一预期的文件扩展名,当然是“.xml”,只留下干净的文件名).

(写数组时):

[这个片段可能不是回答这个问题所必需的,但以防万一]

@foreach(string file in files)
{
<p>
<button title="Permanently delete the requisition named, &quot;@file&quot" type="button" id="@file" class="fileDelBtn">DEL</button>&nbsp;<span style="color: #000;">~</span>&nbsp;<span id="@file" class="listFile">@file</span>
</p>
hasSavedFiles = true;
}

我尝试过的事情:

string [] files = new DirectoryInfo(Server.MapPath("~/User_Saves/" + WebSecurity.CurrentUserName)).GetFiles().OrderBy(files => files.LastWriteTime).ToArray;

由于此错误而失败:CS0136:无法在此范围内声明名为"file"的局部变量,因为它会给"file"赋予不同的含义,而"file"已在“父或当前”范围中用于表示别的东西

首先,我无法理解 lambda 运算符,对于我来说,即使看了这里:http://msdn.microsoft.com/en-us/library/bb311046.aspx (仅对此进行澄清,将不胜感激,但无论如何都不是真正的主要问题)。

其次,使用这个例子,我知道 DirectoryInfo() 没有带 2 个参数的重载,所以我可能会失去“获取”仅“*.xml”文件的能力,我很想保留这些文件,但是可能不是绝对必要。

一如既往,我们非常感谢您提供任何帮助,如果有任何进一步的信息对您有帮助,请随时提出。

最佳答案

var filesInOrder = new DirectoryInfo(path).GetFiles()
.OrderByDescending(f => f.LastWriteTime)
.Select(f => f.Name)
.ToList();

关于c# - 如何按照上次在 asp.net-webpages 中修改的日期顺序对 .GetFiles() 中的字符串数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16019791/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com