我正在嘗試構建一個應用程序,用於將我的計算機上的文件與我的web服務器上的文件同步。在我目前的情況下,我的應用程序觀看一系列包含要同步的文件的路徑。這個解決方案的問題是,當我在本地重命名一個文件時,它不再匹配任何路徑,而是作爲新文件上傳,而不是覆蓋舊文件。我想要做的是將一個像documentID這樣的屬性添加到文件中,所以無論文件名是什麼,都可以檢查它。使用c向文件添加屬性#
任何人都可以指向正確的方向嗎?
我正在嘗試構建一個應用程序,用於將我的計算機上的文件與我的web服務器上的文件同步。在我目前的情況下,我的應用程序觀看一系列包含要同步的文件的路徑。這個解決方案的問題是,當我在本地重命名一個文件時,它不再匹配任何路徑,而是作爲新文件上傳,而不是覆蓋舊文件。我想要做的是將一個像documentID這樣的屬性添加到文件中,所以無論文件名是什麼,都可以檢查它。使用c向文件添加屬性#
任何人都可以指向正確的方向嗎?
你不能。你正在尋找的是將元數據添加到文件。這就是爲什麼像Perforce這樣的修訂軟件首先存在的原因。這種軟件跟蹤倉庫內的所有文件,並記錄所有更改,重命名,刪除和創建文件。但即使Perforce也有其限制,因爲它不能更改文件之間的鏈接。
如果您想要一個完整的解決方案,BigFile是完美文件跟蹤的答案。但是在這一點上,你不在Windows支持之列。大多數電子遊戲公司都使用BigFile的概念,因爲它允許每個存在於裏面的文件通過ID而不是名稱進行跟蹤。所有的文件都被稱爲ID和路徑只是用戶的便利。一個文件通過它的ID引用另一個文件,除此之外沒有別的。
在我參與的一個大型項目中,我們在頂層與Perforce進行了BigFile集成,以充當修訂歷史記錄。 BigFile將序列化一個「外部」文件並將其提供給Perforce以獲取歷史記錄。當我們獲得最新版本時,BigFile會向Perforce請求所有最新版本,並將其重新整合到內部。
但是,如果你只做Office文件,Perforce,Alienbrain,CVS或Subversion都可以解決你的問題。
感謝您的答案和替代品。我會研究這些! – chriskievit
剛剛添加了專門用於修訂控制的軟件集合。你也可以閱讀:http://en.wikipedia.org/wiki/Revision_control – LightStriker
hm。如果該文件被複制,該屬性應該如何表現?記住例如Microsoft Word刪除舊文件並在您點擊「保存」時創建一個新文件,因此任何屬性都將丟失。 – Vlad
@Vlad是這樣嗎?這真是一種恥辱和破壞者,因爲大部分文件都是辦公文件。 – chriskievit
好吧,Office將此作爲一項安全功能:如果由於某種原因保存失敗,他們不想丟失原始文件。因此,他們以某個臨時名稱保存文件,並且當保存成功完成時,刪除原始文件並重命名新文件。 – Vlad