2016-05-05 8 views
2

私は以下のコードを表示していますが、modofiedの日付が正しく表示されない問題がどこにあるのかわかりません。GetLastWriteTime()が私のページに正しいDateTimeを表示していません

表示に

予定日:2016年5月5日現在 日付表示:1600年12月31日

まあ、私は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> 
+2

ディレクトリパスが悪い/間違っています。 [この質問を参照](http://stackoverflow.com/questions/10583938/getlastwritetime-returning-12-31-1600-70000-pm) – Jonesopolis

+0

@ Jonesopolisは、悪いディレクトリパスと思われる。コンソールアプリケーションでは動作しますが、aspxページでは動作しません。リンクにはディレクトリパスに関連するものは何も表示されません。 –

+0

@ Love0915 - 彼のリンクで受け入れられている答えは、パスに言及していません。それは直接、その主題の文書を引用しています。 –

答えて

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サーバーのパスを取得し、それはサイトが

string pathfile = System.Web.Hosting.HostingEnvironment.MapPath("~/Files/contact.csv"); 
を展開し、仮想ディレクトリの下に Filesフォルダから contact.csvファイルを取得します使用して、信頼性の高い日付時刻を返しません

サーバーパス情報MSDN

+0

うまくいきましたが、パス全体の例を 'string path = @" c:\ MyDir ";"とすると動作しますが、公開するとパスが変更されます。では、pathfileの解決策は何ですか? –

+0

あなたのファイルはプロジェクト内でどこにありますか? – Mostafiz

+0

非常に長いパスファイルですが、ローカルパスの場所になります。例: 'C:\ web \ src \ dotnet \ web \ Files \ contact.csv' –

関連する問題