我在这里看到了一个非常接近的例子:
但我是 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:无法在此范围内声明名为“文件”的局部变量,因为它会给“文件”赋予不同的含义,“文件”已在“父或当前”范围中用于表示其他内容
一方面,我一生都无法理解 lambda 运算符,即使看过这里:http: //msdn.microsoft.com/en-us/library/bb311046.aspx (仅对此进行澄清,将是非常感谢,但无论如何都不是主要问题)。
其次,使用这个例子,我知道 DirectoryInfo() 没有带 2 个参数的重载,所以我可能会失去“获取”只有“*.xml”文件的能力,我想保留这些文件,但可能不是绝对的必要的。
与往常一样,非常感谢任何帮助,如果任何进一步的信息对您有帮助,请不要犹豫。