karan 2012 Ответов: 5

Как узнать время создания файла в C#


<asp:FileUpload ID="FileUpload1" runat="server" />
 <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
   <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

 // this is a aspx.cs file
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;

public partial class we : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        
       DateTime creationTime = File.GetCreationTime(FileUpload1.FileName);
        
        Label1.Text =creationTime.ToString() ; 
    }
}

Я попробовал это сделать ..но я получил вывод 01-01-1601 05:30:00 для всех файлов. Так что же мне делать?

5 Ответов

Рейтинг:
2

Wes Aday

Попробуйте использовать DateTime.Метод FromFileTime, http://msdn.microsoft.com/en-us/library/system.datetime-да.fromfiletime.aspx-файл[^]


karan 2012

это не мое требование ...это не работает

Рейтинг:
2

Alan N

Нулевое время файла-00:00 1 января 1601 года, которое с поправкой на ваше местное время становится 05:30.

В документации говорится:
Если файл, описанный в параметре path, не существует, этот метод возвращает 12:00 полуночи 1 января 1601 года н. э. координированное универсальное время (UTC), скорректированное на местное время.

Вы должны проверить, если FileUpload1.FileName содержит путь, который вы ожидаете от него, и что файл действительно существует.

Алан.


karan 2012

acctually..я не сохраняю свой файл на сервере..
я просто хочу знать время создания любого файла... который хранится на другом диске в компьютере..?
так что же должен я делать?

saransat

У вас есть решение для этой проблемы..

saransat

У вас есть решение для этой проблемы..

Alan N

Вы проверили имя файла? Документация для FileUpload.FileName говорит, что это просто имя файла, а не полный путь. Весьма вероятно, что метод GetCreationTime не найдет файл, если он не имеет полного пути.

Рейтинг:
2

Member 2980888

использовать файл.GetLastWriteTime(@"C:\..\x.txt") для получения последнего сэкономленного времени лучше;

Если Файл.GetCreationTime используется для файла, который копируется в новое место, мы получаем время копирования файла, скопированное в эту папку, несмотря на фактическую дату создания файла.


Richard Deeming

Единственным правильным решением этого древнего вопроса было бы, - Ты не можешь.".

Файлы, загруженные на веб-сайт, отправляют только имя и содержимое файла. Они не отправляют никаких других подробностей, включая время создания, время последней записи или что-либо еще.

Рейтинг:
2

283

Воспользуйся

DateTime creationTime = File.GetCreationTime(FileUpload1.PostedFile.FileName);


Richard Deeming

Повторюсь, единственно верное решение этого древнего вопроса-это - ты не можешь.".

Файлы, загруженные на веб-сайт, отправляют только имя и содержимое файла. Они не отправляют никаких других подробностей, включая время создания, время последней записи или что-либо еще.

Копирование кода, который уже был в вопросе, и публикация его в качестве "решения" не заставит его внезапно начать работать.

Рейтинг:
1

CodeRascal

Вы можете попробовать использовать класс 'FileInfo' системы.Пространство имен IO.
Класс System.IO.FileInfo имеет свойство CreationTime, которое может вам помочь.


karan 2012

я попробовал также wid fileinfo,,,но получил тот же ответ ..так что же мне теперь делать?