【问题标题】:FiIeInfo.CreationTime. How to read correct value?文件信息创建时间。如何读取正确的值?
【发布时间】:2013-01-02 21:08:19
【问题描述】:

我在 .aspx 页面上有文件上传控件,我想一次上传一个位置并不总是相同的图像,可能与 .sln 在同一目录中,在桌面上,在任何地方。

我正在使用这段代码来读取文件创建时间

string savePath = MapPath("~/" + Path.GetFileName(e.FileName));
FileInfo MyFileInfo = new FileInfo(savePath);

string dt = MyFileInfo.CreationTime.Day.ToString();
string mn = MyFileInfo.CreationTime.Month.ToString();
string yr = MyFileInfo.CreationTime.Year.ToString();

我注意到一件事

如果图像与网站位于同一文件夹中,它会为我提供所有正确的值

dtmnyr

但如果它在那个位置之外,它每次都会给我相同的价值

{01/01/1601 00:00:00}

不确定如何解决这个问题? 任何建议,有用的代码?谢谢

【问题讨论】:

  • 我怀疑您刚刚输入了错误的文件名 - 或者您没有读取文件的权限。来自文档:“如果 FileSystemInfo 对象中描述的文件不存在,则此属性将返回 1601 年 1 月 1 日午夜 12:00,协调世界时 (UTC),调整为本地时间。”
  • 我明白了,我有 MyFileInfo.Exists = false,所以当我尝试访问不同目录中的文件时这是有道理的,但我想知道是否还有其他方法可以解决这个问题?
  • 好吧,我们必须首先确切地知道哪里出了问题。这很可能只是权限问题 - 您是否已授予相应 ASP.NET 帐户查看该文件的权限?
  • 这对我来说是新的。我怎样才能做到这一点?谢谢
  • 如何传递不同的目录名? e.FileName 之前的~/ 指的是您网站的根目录。因此,您需要一个相对路径才能到达站点根目录之外的目录

标签: c# asp.net asyncfileupload fileinfo


【解决方案1】:

您似乎还不了解客户端/服务器障碍。来自客户端的路径在服务器上没有意义。

碰巧您的网站与客户端在同一台机器上运行,因为您是在本地调试。这只是一个巧合,它允许您的代码有时可以工作(巧合)。

通过忽略路径并从文件上传控件提供的流中读取来进行正确的文件上传。文件上传只是到服务器的字节流。

【讨论】:

    猜你喜欢
    • 2021-06-27
    • 2019-12-29
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多