
想像一個大型 SAN,在無組織的目錄結構中包含十萬個檔案。
檔案將會被移到具有組織好的目錄結構的新 SAN。有些檔案在移動時會被重新命名。此外,許多文件都有引用,例如 Excel 電子表格是相互連結的,這些文件在移動後會中斷。
我們需要保留「從」和「到」檔案路徑的映射,以防我們需要引用存檔,例如修復損壞的連結。
我做了研究,看看市場上是否有任何東西,但沒有運氣。因此,我開始編寫一個應用程序,允許用戶將文件和記錄拖放到 SQL dB:
我對這種方法不是 100% 確定。有誰知道是否有更好的方法來做到這一點? Windows中有什麼東西嗎?
我們正在考慮掃描新舊目錄並以這種方式製作地圖。不幸的是,這不會成功,因為文件名可能會更改,並且移動文件的創建/修改等日期將是今天。
我們正在考慮在每個文件中擁有一些唯一標識符,但這個想法從未得到關注,因為您將在哪裡存儲不同文件類型的唯一標識符?
可能是 AutoHotKey 腳本?
答案1
我用 C# 為我的一個客戶建立了一個自動化部署系統。這個問題看起來很相似,只是規模不同。
ADS 中處理的事情:
- 從 SVN 自動結帳。
- 遍歷所有資料夾。
- 每個資料夾都可以包含在卷展欄中或從卷展欄中排除。
- 如果包含資料夾,則也包含所有檔案和子資料夾。排除也同樣如此。
- 就像包含一樣,每個資料夾都可以重新定位到部署資料夾中的新位置。
- 一切都是拖放式的(幸運的是,部署腳本不必經常修改)。
- 最關鍵的部分是二進位檔案比較以僅複製修改的檔案。 <-- 這看起來對你來說也是最重要的事。由於我只處理 C# 或 Perl 程式碼文件等程式碼文件,因此這是一個簡單的檢查:
- 左右取文件
- 刪除所有空格。
- 一次比較文件一個位元組。
在您的情況下,除非文件相當大,否則您可以使用相同的方法。如果文件很大(假設這些是資料檔案),則簡單的頁首/頁尾比較應該可以解決問題。
我們正在考慮在每個文件中擁有一些唯一標識符,但這個想法從未得到關注,因為您將在哪裡存儲不同文件類型的唯一標識符?
這也是我一開始的想法,但我的問題並不那麼嚴重,所以我放棄了它。從技術上講,每個 FileInfo 物件都包裝在一個專門的類別中,該類別具有 GUID 類型的特定欄位。我將這個序列化類別數組保存在 XML 檔案中。
<FIItem>
<ID>*some guid*</ID>
<FileInfoObj>*file info which contains full file path*</FileInfoObj>
</FIItem>