2010-10-11 54 views
0

我有一個程序需要一些大的(〜4或5mb)文件。每週一次,每週都會有一些新版本的這些文件進行細微的更改。大部分只是添加或刪除了幾行。C#:以編程方式將合併/修補程序應用於文件?

當程序啓動時,如果有Internet連接,我希望程序自動更新這些文件。我不想下載文件的全部新版本,而只想下載基於客戶端版本的更新文件的修補程序。

我該怎麼做?

我對服務器有完全控制權。

+0

您有權訪問服務器嗎? (即,您可以上傳(A)靜態文件和/或(B)ASP.NET或其他服務器端腳本到服務器嗎?) – dtb 2010-10-11 21:21:01

+0

是在服務器和客戶端上安裝應用程序的一個選項嗎?看起來像是Mercurial的問題。 – 2010-10-11 21:26:46

回答

1

如果您不知道文件中的內容或服務器是否有設施來允許您請求差異,那麼這是一個難以解決的問題。您編寫的任何程序無法通過查看舊文件和新文件來確定差異,無論如何都必須下載它。

0

C#沒有任何內置工具來執行此操作,但聽起來您的要求並不複雜。看看如何使用Unix上的diff和ed來修補基於易於grok delta的文本文件。當然,你應該檢查生成的文件是否有散列,如果不正確,可以回到完整下載。

相關問題