繁体   English   中英

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

[英]How do I add the modified date of my folder files to my GridView?

我已经制作了一个应用程序,可以成功显示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列中添加修改日期,以便我的用户可以更轻松地找到客户需要的正确文档。 我该怎么办?

尝试:

DateTime date = directory.GetLastWriteTime;

您可以使用的文件

File.GetLastWriteTime

MSDN

您将需要比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 ,您将可以通过使用以下方式访问每个文件的许多属性(包括修改的日期,名称和许多其他属性) 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>

尝试这个

File.GetLastWriteTime(path);

这是完整的细节

http://msdn.microsoft.com/en-us/library/system.io.file.getlastwritetime(v=vs.110).aspx

获取FilePath之后,需要使用FileInfo类。 这个文件信息具有LastWriteTime,CreationTime之类的属性,使用这些属性可以排序和显示。 像内部循环一样,您需要在后面的代码中像这样使用

  FileInfo fi1 = new FileInfo(filePath ); 

和使用

fi1.LastWriteTime

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM