2011-10-11 86 views
0

做出更改上載到我在做某種FTP上傳客戶端。我可以上傳文件,但我不知道如何上傳對文件所做的更改。我說的修改並不是說文件被重命名,而是其內容發生了變化。例如,我有一個* .rar文件(足夠大),其中包含一些文件。當我添加一些新文件時,我不希望整個* .rar被上傳,只是改變的部分。我知道WebRequestMethods.Ftp.AppendFile,但它只附加在文件的末尾,以及如果在中間應用了哪些更改?我會得到一個垃圾文件...... 我讀過有關「二元差異」 &看到一對夫婦的客戶端直接進行服務器上進行更改(FileZilla中,直接FTP,ALFTP)到文件(FTP)

+0

也許這取決於FTP協議版本和客戶端/服務器版本。但我真的不是一個FTP專業人員。 – ykatchou

+0

問題是:FTP允許隨機文件訪問嗎?除了你將不得不計算一個二進制差異的事實,你也將不得不應用這種差異... ... [/ color] [/ url](http://stackoverflow.com/questions/510492/can-and-how-do-you-使用-的RandomAccessFile上帶有一個文件包含的-AN-FTP服務器上) – Oli

+0

因爲我從你的「類似問題」明白了,如果我嘗試從特定點寫文件,它會在兩個在這個分裂地點? – GaaRa

回答

1

其實如果文件在你的rar檔案被改變 - 你應該重建並重新上傳整個檔案。

FTP共享不節能的什麼文件改變,或重命名的歷史。因此,唯一的解決方案是:

  1. 在客戶端應用程序中保存某種xml文件的列表。
  2. 當您檢索從FTP文件列表 - 比較,如果與你的歷史XML文件的列表。

這兩個步驟不會幫助您找到哪些文件被重命名,但會爲您提供有關刪除或添加的文件的信息。

如果文件被改變比較可以通過在他們的歷史文件大小節約來完成。如果您需要更精確的檢查可以生成CRC的文件:

http://damieng.com/blog/2006/08/08/calculating_crc32_in_c_and_net

但CRC的生成是一個很長的任務。

+0

我說的不是文件數量的差異,而是文件內容的變化...... – GaaRa