利用mklink實現OneDrive文件同步

需求分析

OneDrive作爲一個同步、備份雲盤,但其中的同步目錄只有默認的三個,需要將文件放入這些指定目錄下才可以實現同步:



另外,若開啓了這些目錄的同步功能,OneDrive會將這些文件的所在目錄自動轉移到其根目錄下(一般在C盤),且難以復原。

如何同步自定義的目錄是本文章將要解決的問題。

具體實現

mklink是一條內置Windows系統的命令,實現創建某文件的符號鏈接或硬鏈接。

打開cmd窗口,輸入mklink即可查看基本語法信息:

對於本次的需求,使用以下命令即可:

mklink /D <link> <target> 

 D不區分大小寫,可以用/d替代/D  

<link>:目標位置,用雙引號包裹  

<target>:源文件目錄,用雙引號包裹

要把"C:\test"同步到OneDrive的根目錄中(會自動生成同名文件夾),只需要在cmd中輸入:

mklink /D "{你的OneDrive根目錄}\test" "C:\test"

提示如下信息即成功:

遇到的問題

使用符號鏈接會產生一個新的問題,在遇到文件修改時無法實時被同步,需要退出並重新打開OneDrive後才能觸發同步。此外,文件永遠顯示“同步被掛起”的狀態。

解決方案:

  1. 將實際文件夾存放在OneDrive中,映射到本地,這樣可以正常實現雙向實時同步。

  2. 對於另一種解決方案,通過使用插件,定時在OneDrive的根目錄生成空文件以觸發它的同步機制,有興趣的朋友可以前往以下鏈接自行查看:

    GitHub - ktheod/OneDriveBully: Bully your OneDrive to sync Symbolic Link Folders

    由於目前作者已停止對該插件的更新維護,所以本人沒有測試過該插件。

其他

符號鏈接和快捷方式

簡單來說,mklink生成的是一個與源對象相同類型的文件或文件夾(映射),不佔用磁盤空間,修改時可以雙向修改;而創建快捷方式生成的僅僅只是.lnk文件,訪問時需跳轉回源目錄。

容量擴充購買建議

Microsoft 365 家庭訂閱,可以擴充一年OneDrive1TB容量,並附帶一年Office,最多可供6人使用。

參考內容

Onedrive 如何同步一個文件夾? - 知乎 (zhihu.com)

mklink | Microsoft Learn

windows 10 - 2-Way sync doesn't work in OneDrive when using symbolic links or junctions - Super User

Can't synchronize OneDrive files and folders from a local file location other than the default OneDrive path - Microsoft Support

GitHub - ktheod/OneDriveBully: Bully your OneDrive to sync Symbolic Link Folders

更多遊戲資訊請關註:電玩幫遊戲資訊專區

電玩幫圖文攻略 www.vgover.com