【问题标题】:GetLastWriteTime() is not displaying correct DateTime on my pageGetLastWriteTime() 没有在我的页面上显示正确的 DateTime
【发布时间】:2016-05-05 15:57:07
【问题描述】:

我有一个 aspx 页面,我在其中显示以下代码,但我不知道问题出在哪里,因为它没有正确显示修改后的日期。

预计展示日期:05/05/2016 当前日期显示:12/31/1600

好吧,我在 400 年前没有更新文件。有谁知道这里的问题是什么?

<% 
   string pathfile = @"../../../Files/contact.csv";
   DateTime lastModified = System.IO.File.GetLastWriteTime(pathfile);
   string UpdatedDate = lastModified.ToString("MM/dd/yyyy");
%>
    <br /><b>(Contact last updated: <%Response.Write(UpdatedDate); %>)</b>

【问题讨论】:

  • 目录路径错误/错误。见this question
  • @Jonesopolis 这似乎是错误的目录路径。它适用于控制台应用程序,但不适用于我的 aspx 页面。并且该链接没有显示与目录路径相关的任何内容。
  • @Love0915 - 他的链接中接受的答案确实提到了一条路径。它直接引用了有关该主题的文档。
  • 确实有效,但如果我将整个路径示例用作string path = @"c:\MyDir";,它可以工作,但是当我发布此路径时,显然路径会改变。那么 pathfile 的解决方案是什么?

标签: c# asp.net


【解决方案1】:

GetLastWriteTime 并不总是返回可靠的日期时间,使用这个

DateTime now = DateTime.Now;
TimeSpan localOffset = now - now.ToUniversalTime();
DateTime lastModified = File.GetLastWriteTimeUtc(pathfile) + localOffset;
string UpdatedDate = lastModified.ToString("MM/dd/yyyy");

通过这种方式获取iis服务器路径,它将从站点部署的虚拟目录下的Files文件夹中获取contact.csv文件

string pathfile = System.Web.Hosting.HostingEnvironment.MapPath("~/Files/contact.csv");

服务器路径信息MSDN

【讨论】:

  • 确实有效,但如果我将整个路径示例用作string path = @"c:\MyDir";,它可以工作,但是当我发布此路径时,显然路径会改变。那么 pathfile 的解决方案是什么?
  • 您的文件在项目中的位置?
  • 它是一个很长的路径文件,但这将是本地路径位置。例如C:\web\src\dotnet\web\Files\contact.csv
  • 如果你直接设置路径,那么它不会改变依赖于不同位置的站点部署,它会从服务器中获取指定位置的文件
  • 按照string pathfile = System.Web.Hosting.HostingEnvironment.MapPath("~/Files/contact.csv");工作
猜你喜欢
  • 2016-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-29
  • 1970-01-01
  • 1970-01-01
  • 2013-02-25
相关资源
最近更新 更多