我看到这里非常接近例如:如何从.GetFiles()按asp.net-webpages中上次修改日期的顺序对字符串数组进行排序?
但我是新来的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, "@file"" type="button" id="@file" class="fileDelBtn">DEL</button> <span style="color: #000;">~</span> <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:名为'files'的局部变量无法在此作用域中声明,因为它会给出不同的意思是'文件',它已经在'父或当前'范围内用于表示别的东西
对于其中一个,我无法理解lambda操作符,对于我的生活,即使在看这里之后:http://msdn.microsoft.com/en-us/library/bb311046.aspx (澄清这一点,将不胜感激,但不是真正的主要问题,无论如何)。第二,使用这个例子,我知道DirectoryInfo()没有带2个参数的重载,所以我可能会失去“获取”只有“* .xml”的文件的能力,我想保留它,但是可能不是绝对必要的。
一如既往,任何帮助非常感谢,如果有任何进一步的信息可以帮助你,请不要犹豫,问。
简单地将其更改为'.OrderBy(F => f.LastWriteTime)' –
@IliaG我会尝试,现在。在这个例子中,f是什么? – VoidKing
'f'是文件数组中的元素 –