我正在寫一個應用程序,只有當時間戳比現有的時間戳更新時,纔會下載和替換PDF文件...如何使用c#查找在線pdf文件的時間戳?
我知道它可能讀取本地文件的時間戳通過下面的代碼行計算機,
MessageBox.Show(File.GetCreationTime("C:\\test.pdf").ToString());
是可以在線閱讀的文件時的時間戳,無需下載它..?
我正在寫一個應用程序,只有當時間戳比現有的時間戳更新時,纔會下載和替換PDF文件...如何使用c#查找在線pdf文件的時間戳?
我知道它可能讀取本地文件的時間戳通過下面的代碼行計算機,
MessageBox.Show(File.GetCreationTime("C:\\test.pdf").ToString());
是可以在線閱讀的文件時的時間戳,無需下載它..?
除非網站上包含文件的目錄被配置爲顯示原始文件列表,否則無法通過HTTP獲取文件的時間戳。即使使用原始列表,您也需要自己解析HTML以獲取時間戳。
如果你有FTP訪問文件,那麼你可以這樣做。如果只使用.NET Framework中內置的基本FTP功能,則仍然需要解析目錄列表以獲取日期。但是,有第三方FTP庫可填補空缺,例如editFTPnet,您可在其中獲得FTPFile class。
更新時間:
根據註釋:
如果我要建立與 手寫的日期和文件名一個簡單的HTML文件,我可以簡單地看,要找出哪些文件 實際上已經更新並只下載所需的文件。是 是一個可行的辦法..
這將是一種方法,或者如果你有可用的腳本(ASP.NET,ASP,PHP,Perl中,等等),那麼你可以自動完成這一點,並有腳本獲得文件的時間戳併爲你渲染它們。或者你可以編寫一個非常簡單的Web服務,它返回一個JSON或XML blob,其中包含文件的時間戳,而不是一些HTML的解析麻煩。
只有在Web服務器明確向您提供該數據時纔有可能。文件的創建日期是文件系統的一部分。但是,當您通過HTTP下載某些內容時,它不是文件系統的一部分。
HTTP並沒有像人們普遍認爲的那樣有「文件」的概念。相反,其他情況下作爲「文件」的內容將作爲響應數據與響應頭一起傳送,該響應頭會提供有關數據的信息。如果客戶端決定將數據保存爲客戶端本地文件系統上的文件,則頭文件可以指定數據的類型(如PDF「文件」),甚至可以指定默認名稱。
但是,即使在保存時,它也是客戶端本地文件系統上的新文件。它不知道生成由Web服務器提供的數據的原始文件。
+1爲問題提供了一個很好的替代解決方案,不只是說它不能完成 –
@ kev:我在想,如果我要設置一個簡單的html文件,並且手動編寫日期和文件名,我可以簡單閱讀一下,找出哪些文件實際上已被更新,並下載所需的文件。是一個可行的解決方案..請建議.. –
@helloWorld_Always - 看到我更新的答案。 – Kev