【问题标题】:how to find the timestamp of an online pdf file using c#?如何使用 c# 查找在线 pdf 文件的时间戳?
【发布时间】:2011-10-15 13:16:48
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c# timestamp


    【解决方案1】:

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

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

    更新:

    每条评论:

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

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

    【讨论】:

    • +1 为问题提供了一个很好的替代解决方案,而不仅仅是说它不能完成
    • @kev:我想知道,如果我要设置一个简单的 html 文件,其中包含手动编写的日期和文件名,我可以简单地阅读它来找出哪些文件实际上已更新并下载所需的文件。这是一个可行的解决方案..请建议..
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 2012-06-05
      • 1970-01-01
      • 2021-12-22
      • 2015-05-13
      相关资源
      最近更新 更多