2014-02-22 92 views
0

我有一个应用程序,它在启动时从远程位置(通过网络)下载文件并解析其内容。获取远程文件的最后修改日期

我试图加快启动过程,因为文件越大,应用程序启动越慢。

作为一种加速过程,我想获得文件的最后修改日期,如果它是从用户的PC上的文件更新,那么只有然后下载它。 我发现有很多方法可以在线完成,但它们都不在C#中(对于Windows应用商店应用程序)。有没有人知道这样做的方式,而不需要下载文件?如果我要下载这个文件,那么这个过程就会加速。

对于当前正在下载的文件我的C#代码是这样的

const string fileLocation = "link to dropbox"; 
      var uri = new Uri(fileLocation); 
      var downloader = new BackgroundDownloader(); 
      StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync("feedlist.txt",CreationCollisionOption.ReplaceExisting); 
      DownloadOperation download = downloader.CreateDownload(uri, file); 
      await download.StartAsync(); 

如果有帮助的文件存储在Dropbox的,但如果有的话你们有另一个免费网络硬盘的建议我愿意接受建议

+0

您可以改为让服务器(远程位置)创建一些下列结构的索引文件:文件名,最后修改的数据(我建议您使用校验和来代替),让客户端下载此字符串,比较日期(或校验和^^),如果不同,请删除并下载。 –

+0

说实话,远程位置是一个公共文件夹在收件箱中:D现在便宜:D –

+0

您可以使用什么协议?对不起,我从未使用过DropBox。用SFTP你可以得到那种信息,我想。 –

回答

1

通常,您可以通过sending HEAD request检查文件时间并解析/查看提交的Last-Modified HTTP标头响应。远程服务器应该支持它,DropBox不支持直接链接的这个功能(只能通过API)。但DropBox有另一个功能,标题有etag字段。您应该存储它并检查下一个请求。如果它改变了 - 文件也被改变了。您可以使用this tool来检查远程文件标题。

+0

这只是一个在网络上有数百个实现的工具。文中的解决方案。 – crea7or

相关问题