2011-06-25 10 views
2

ローカルコンピュータとWebサーバーの2つのファイルを比較しようとしていますが、Webサーバー上のファイルが新しい場合はダウンロード/上書きされます地元のもの。 FileInfoは、URIのを取ることはありませんが、誰かがこれを回避する方法をお勧めすることができますしてくださいローカルファイルが古い場合にのみファイルをダウンロードする方法

private void checkver() 
{ 
    FileInfo sourceFile = new FileInfo("download.zip"); 
    if (sourceFile.Exists) 
    { 
     FileInfo destFile = new FileInfo(@"http://www.google.com/download.zip"); 
     if (destFile.Exists && destFile.LastWriteTime >= sourceFile.LastWriteTime) 
     { 

      MessageBox.Show("File already up to date"); 

     } 
     else 
     { 
      MessageBox.Show("File is not up to date"); 
     } 
    } 
} 

答えて

5

HttpWebRequestHttpWebResponseを使用してみてください:

var request = (HttpWebRequest)WebRequest.Create(@"http://www.google.com/download.zip"); 
request.Method = "HEAD"; 
var response = (HttpWebResponse)request.GetResponse(); 

if (response.LastModified > sourceFile.LastWriteTime) 
{ 
    // create another request to download the whole file 
} 
+1

これはまだ全体のリモートファイルをダウンロードします。しかし、request.Methodを "HEAD"に設定すると動作する可能性があります。 –

+0

@Paul Alexander、良い点、コードを更新しました。 – ChrisWue

関連する問題