如何使用c#查找在线pdf文件的时间戳?

时间:2011-07-28 22:50:07

标签: c# timestamp

我正在编写一个应用程序,只有当时间戳比现有时间戳更新时才会下载和替换pdf文件...

我知道可以通过下面的代码行读取本地计算机上文件的时间戳,

MessageBox.Show(File.GetCreationTime("C:\\test.pdf").ToString());

是否可以在不下载文件的情况下读取在线文件的时间戳。?

2 个答案:

答案 0 :(得分:2)

除非站点上包含该文件的目录配置为显示原始文件列表,否则无法通过HTTP获取文件的时间戳。即使使用原始列表,您也需要自己解析HTML以获取时间戳。

如果你有FTP访问文件,那么你可以这样做。如果只使用.NET Framework中内置的基本FTP功能,您仍需要解析目录列表以获取日期。但是,第三方FTP库填补了editFTPnet之间的空白,您可以获得FTPFile class

<强>更新

每条评论:

  

如果我要设置一个包含日期和文件名的简单html文件   手动编写,我可以简单地读取,找出哪些文件   实际上已经更新并只下载所需的文件。是   这是一个可行的解决方案..

这将是一种方法,或者如果您有可用的脚本(ASP.NET,ASP,PHP,Perl等),那么您可以自动执行此操作并让脚本获取文件的时间戳并将其呈现为您。或者你可以编写一个非常简单的Web服务,它返回一个JSON或XML blob,其中包含文件的时间戳,这些文件比一些HTML更难解析。

答案 1 :(得分:1)

只有当Web服务器明确地向您提供该数据时,才有可能。文件的创建日期是文件系统的一部分。但是,当您通过HTTP下载某些内容时,此时它不属于文件系统。

HTTP没有人们通常认为的“文件”概念。相反,本来是“文件”的内容将作为响应数据传输,并带有响应头,该响应头提供有关数据的信息。标题可以指定数据的类型(例如PDF“文件”),甚至可以指定客户端决定将数据保存为客户端本地文件系统上的文件时使用的默认名称。

但是,即使保存它,它也是客户端本地文件系统上的新文件。它不知道生成Web服务器提供的数据的原始文件。