如何将文件夹文件的修改日期添加到GridView?

时间:2014-09-12 12:43:18

标签: c# asp.net gridview file-io

我已经创建了一个应用程序,可以在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列中添加修改日期,以便我的用户可以更轻松地找到客户呼叫的正确文档。我该怎么做?

4 个答案:

答案 0 :(得分:0)

尝试:

DateTime date = directory.GetLastWriteTime;

您可以使用的文件

File.GetLastWriteTime

MSDN

答案 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