2011-06-25 28 views
2

我试图比较两个文件,一个在本地计算机上,另一个在Web服务器上,如果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

这仍然会下载整个远程文件。但是设置请求。“HEAD”的方法可能会起作用。 –

+0

@Paul Alexander,好点,更新了代码。 – ChrisWue

相关问题