Voi*_*ing 1 c# xml linq sorting 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);
}
Run Code Online (Sandbox Code Playgroud)
(最后一部分,即“ 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;
}
Run Code Online (Sandbox Code Playgroud)
我尝试过的事情:
string [] files = new DirectoryInfo(Server.MapPath("~/User_Saves/" + WebSecurity.CurrentUserName)).GetFiles().OrderBy(files => files.LastWriteTime).ToArray;
Run Code Online (Sandbox Code Playgroud)
由于此错误而失败:CS0136:无法在此范围中声明名为“文件”的局部变量,因为它将赋予“文件”不同的含义,该变量已在“父或当前”范围中用于表示其他内容
首先,即使在这里查看以下内容,我也无法理解lambda运算符:http : //msdn.microsoft.com/zh-cn/library/bb311046.aspx (仅对此进行澄清非常感谢,但无论如何,这并不是真正的主要问题)。
其次,使用此示例,我知道DirectoryInfo()没有采用2个参数的重载,因此我可能会失去仅保留“ * .xml”文件的能力,但是我想保留它,但是可能不是绝对的必要。
与往常一样,我们将非常感谢您的帮助,如果有任何其他信息对您有所帮助,请随时询问。
var filesInOrder = new DirectoryInfo(path).GetFiles()
.OrderByDescending(f => f.LastWriteTime)
.Select(f => f.Name)
.ToList();
Run Code Online (Sandbox Code Playgroud)