Как добавить измененную дату моих файлов папок в мой 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();
</listitem></listitem>

Вот мой 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>
</asp:boundfield></columns>
</asp:gridview>

Теперь я хочу добавить дату, измененную в столбце gridview, чтобы у моих пользователей было легче найти правильные запросы клиентов. Как мне это сделать?

4 ответа

Вы хотите иметь больше деталей, чем имя файла в GridView поскольку метод Directory.GetFiles() возвращает только пути. В своем коде попробуйте использовать что-то вроде этого вместо Directory.GetFiles():

************* di = new *************(Server.MapPath(strDirectory));
List<fileinfo> files = di.GetFiles().ToList();

GridView1.DataSource = files;
GridView1.DataBind();
</fileinfo>

Класс ************* предоставляет гораздо более подробную информацию о объектах файловой системы и дает вам гораздо больше данных (вы также можете фильтровать на основе расширения файла). Используя это, вам не придется выполнять какую-либо дополнительную работу, чтобы получить подробную информацию о файле и в вашем GridView, у вас будет доступ ко многим свойствам каждого файла (включая измененную дату, имя и многие другие), используя метод 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>
</asp:boundfield></asp:boundfield></columns>
</asp:gridview>


После получения файлов FilePath необходимо использовать класс FileInfo. И этот файл имеет такие свойства, как LastWriteTime, CreationTime, используя эти атрибуты, которые вы можете сортировать и показывать. Как внутри цикла, вам нужно использовать это в коде

FileInfo fi1 = new FileInfo(filePath );

и использование

fi1.LastWriteTime


Попробуй это

File.GetLastWriteTime(path);

Вот полная информация

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


Пытаться:

DateTime date = directory.GetLastWriteTime;

для файла, который вы можете использовать

File.GetLastWriteTime

MSDN

licensed under cc by-sa 3.0 with attribution.