OneDrive 设置同步任意文件夹

博客介绍了OneDrive设置同步任意文件夹的方法。利用Windows中cmd的内置指令创建文件夹链接,该链接类似快捷方式,两端双向同步。给出命令示例,可让OneDrive里的文件夹同步其他地方文件夹的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OneDrive 设置同步任意文件夹

原理:使用 mklink命令。

mklink 介绍:

  1. mklink 指令可以创建文件夹的链接(类似快捷方式)

  2. mklink 指令属于 Windows 中 cmd 的内置指令,所以不能在 PowerShell 中使用。

  3. 链接的两端,只要有任一端有变动,另一边会做出相同的操作。比如这边删除了一个文件,那么那边也会删除,这边做出修改,那边也同时修改,即绑定的这两个文件夹是双向同步的。

    命令示例:

    mklink /d "C:\文件夹B" "D:\文件夹A" # 指C盘的文件夹B 同步 D盘的文件夹A的内容
    

    image-20230101160729532

我们是要 OneDrive 同步其它文件夹,因此可以写(文件夹B不需要自己建,它会自动创建):

该命令意思就是:OneDrive里面的文件夹B 同步 另一个地方文件夹A 的内容

mklink /d "C:\Users\73446\OneDrive\文件夹B" "C:\Users\73446\Documents\文件夹A"
可以使用Python中的schedule模块和onedrive模块来实现定时抓取onedrive文件到本地文件夹。 首先需要安装schedule和onedrive模块,可以使用以下命令进行安装: ``` pip install schedule pip install onedrive-sdk-python ``` 接下来,你需要获得onedrive的API凭证,具体步骤可以参考Microsoft官方文档:https://docs.microsoft.com/en-us/onedrive/developer/rest-api/getting-started/app-registration?view=odsp-graph-online 获取到API凭证后,你可以使用以下代码实现定时抓取onedrive文件到本地文件夹: ```python import schedule import time import os from onedrivesdk import ( OneDriveClient, http, AuthProvider ) # 定义抓取间隔时间(秒) INTERVAL = 60 * 10 # 定义本地文件夹路径和要抓取的onedrive文件路径 LOCAL_FOLDER_PATH = "D:/onedrive_files" ONEDRIVE_FILE_PATH = "/Documents/file.txt" # 定义onedrive API凭证信息 CLIENT_ID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' CLIENT_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' REDIRECT_URI = 'http://localhost:8080' REFRESH_TOKEN = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # 初始化auth_provider和client auth_provider = AuthProvider( client_id=CLIENT_ID, client_secret=CLIENT_SECRET, redirect_uri=REDIRECT_URI, refresh_token=REFRESH_TOKEN ) client = OneDriveClient(auth_provider=auth_provider) def download_file(): # 获取onedrive文件的下载链接 item = client.item(path=ONEDRIVE_FILE_PATH) download_url = client.item(drive='me', id=item.id).get('@microsoft.graph.downloadUrl') # 下载文件到本地文件夹 response = http.get(download_url) file_name = os.path.basename(ONEDRIVE_FILE_PATH) with open(os.path.join(LOCAL_FOLDER_PATH, file_name), "wb") as f: f.write(response.content) print("File downloaded successfully!") schedule.every(INTERVAL).seconds.do(download_file) while True: schedule.run_pending() time.sleep(1) ``` 以上代码定义了定时抓取间隔时间、本地文件夹路径、要抓取的onedrive文件路径以及API凭证信息。在`download_file`函数中,首先使用`client.item`方法获取onedrive文件的信息,然后使用`client.item(drive='me', id=item.id).get('@microsoft.graph.downloadUrl')`方法获取文件的下载链接,最后使用`http.get`方法下载文件到本地文件夹。 如果你想要抓取其他类型的文件,只需要将`ONEDRIVE_FILE_PATH`更改为相应的路径即可。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值