如何将文件夹文件的修改日期添加到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列中添加修改的日期,这样我的用户就可以更容易地找到客户打电话询问的正确文档。我该怎么做?

如何将文件夹文件的修改日期添加到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