如何将文件夹文件的修改日期添加到GridView中
本文关键字:添加 日期 GridView 修改 文件夹 文件 | 更新日期: 2023-09-27 18:21:48
我制作了一个应用程序,它成功地显示了asp:GridView
中文件夹中的文件,并允许用户下载。
下面是我的代码:
string[] filePaths = Directory.GetFiles(Server.MapPath(strDirectory));
List<ListItem> files = new List<ListItem>();
foreach (string filePath in filePaths)
{
files.Add(new ListItem(Path.GetFileName(filePath), filePath));
}
GridView1.DataSource = files;
GridView1.DataBind();
这是我的GridView
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
EmptyDataText = "No files uploaded" CssClass="mGrid" PageSize="20"
AllowPaging="True" AlternatingRowStyle-CssClass="alt"
OnPageIndexChanging="GridView1_PageIndexChanging" PagerStyle-CssClass="pgr">
<Columns>
<asp:BoundField DataField="Text" HeaderText="File Name" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkDownload" Text = "Download"
CommandArgument = '<%# Eval("Value") %>' runat="server"
OnClick = "DownloadFile"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我现在想做的是在gridview列中添加修改的日期,这样我的用户就可以更容易地找到客户打电话询问的正确文档。我该怎么做?
由于Directory.GetFiles()
方法只返回路径,因此您需要比GridView
中的文件名更详细的信息。在您的代码中,尝试使用类似的东西,而不是Directory.GetFiles()
:
DirectoryInfo di = new DirectoryInfo(Server.MapPath(strDirectory));
List<FileInfo> files = di.GetFiles().ToList();
GridView1.DataSource = files;
GridView1.DataBind();
DirectoryInfo
类提供了关于文件系统对象的更详细的信息,并为您提供了更多的数据(您也可以根据文件扩展名进行筛选)。通过使用它,您将不必做任何额外的工作来获得有关文件的详细信息,并且在GridView
中,您可以通过使用DirectoryInfo
类的GetFiles()
方法访问每个文件的许多属性(包括修改的日期、名称和许多其他属性)。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
EmptyDataText = "No files uploaded" CssClass="mGrid" PageSize="20"
AllowPaging="True" AlternatingRowStyle-CssClass="alt"
OnPageIndexChanging="GridView1_PageIndexChanging" PagerStyle-CssClass="pgr">
<Columns>
<asp:BoundField DataField="Name" HeaderText="File Name" />
<asp:BoundField DataField="LastWriteTime" HeaderText="Last Modified" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkDownload" Text = "Download"
CommandArgument = '<%# Eval("Name") %>' runat="server"
OnClick = "DownloadFile"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
- 目录信息文档:http://msdn.microsoft.com/en-us/library/ms143327(v=vs.110).aspx
- 文件信息文档:http://msdn.microsoft.com/en-us/library/system.io.fileinfo(v=vs.110).aspx
试试这个
File.GetLastWriteTime(path);
以下是的完整细节
http://msdn.microsoft.com/en-us/library/system.io.file.getlastwritetime(v=vs.110).aspx
您需要在获得FilePaths之后使用FileInfo类。这个fileinfo具有LastWriteTime、CreationTime等属性,使用这些属性可以排序和显示。就像内部循环一样,你需要在后面的代码中这样使用
FileInfo fi1 = new FileInfo(filePath );
并使用
fi1.最后写入时间
尝试:
DateTime date = directory.GetLastWriteTime;
对于可以使用的文件
File.GetLastWriteTime
MSDN