Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用c#查找联机pdf文件的时间戳?_C#_Timestamp - Fatal编程技术网

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

如何使用c#查找联机pdf文件的时间戳?,c#,timestamp,C#,Timestamp,我正在编写一个应用程序,只有当时间戳比已经存在的时间戳新时,才会下载并替换pdf文件 我知道可以通过下面的代码行读取本地计算机上文件的时间戳 MessageBox.Show(File.GetCreationTime("C:\\test.pdf").ToString()); 是否可以在不下载的情况下读取联机文件的时间戳 除非站点上包含文件的目录配置为显示原始文件列表,否则无法通过HTTP获取文件的时间戳。即使是原始列表,您也需要自己解析HTML以获取时间戳 如果你有FTP访问文件,那么你可以这样

我正在编写一个应用程序,只有当时间戳比已经存在的时间戳新时,才会下载并替换pdf文件

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

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

是否可以在不下载的情况下读取联机文件的时间戳

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

如果你有FTP访问文件,那么你可以这样做。如果只是使用.NET Framework内置的基本FTP功能,您仍然需要解析目录列表才能获取日期。然而,也有第三方FTP库填补了空白,例如在哪里可以得到一个文件

更新:

根据评论:

如果我要用日期和文件名设置一个简单的html文件 手动编写,我可以简单地阅读它来找出哪些文件 实际上已经更新并下载了所需的文件。是 那是一个可行的解决办法


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

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

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


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

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