我已经创建了一个应用程序,可以在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列中添加修改日期,以便我的用户可以更轻松地找到客户呼叫的正确文档。我该怎么做?
答案 0 :(得分:0)
答案 1 :(得分:0)
由于GridView
方法只返回路径,因此您希望在Directory.GetFiles()
中获得比文件名更多的详细信息。在您的代码中,尝试使用类似这样的内容而不是Directory.GetFiles()
:
DirectoryInfo di = new DirectoryInfo(Server.MapPath(strDirectory));
List<FileInfo> files = di.GetFiles().ToList();
GridView1.DataSource = files;
GridView1.DataBind();
DirectoryInfo
类提供了有关文件系统对象的更多详细信息,并为您提供了更多数据(您还可以根据文件扩展名进行过滤)。通过使用此功能,您无需执行任何额外工作即可获取有关该文件的详细信息,并且在GridView
中,您可以访问每个文件的许多属性(包括修改后的日期,名称和许多内容)其他)使用GetFiles()
类的DirectoryInfo
方法。
<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>
答案 2 :(得分:0)
试试这个
File.GetLastWriteTime(path);
这是完整的细节
http://msdn.microsoft.com/en-us/library/system.io.file.getlastwritetime(v=vs.110).aspx
答案 3 :(得分:0)
获取FilePath后需要使用FileInfo类。此fileinfo具有LastWriteTime,CreationTime等属性,使用您可以排序和显示的这些属性。就像内部循环一样,你需要在
背后的代码中使用这样的东西FileInfo fi1 = new FileInfo(filePath );
并使用
fi1.LastWriteTime