使用 OneDrive 备份同步任意文件夹

方法

场景:我需要在在 OneDrive 中创建一个“备份同步”文件夹来同步本地的“OneNote”备份文件。

第一步

打开OneDrive文件夹,复制路径:

C:\Users\username\OneDrive

第二步

打开需要添加同步的本地文件夹,复制路径:

C:\Users\username\AppData\Roaming\Notepad++\backup

第三步

以管理员权限运行 cmd,“备份同步”为要创建的文件夹:

mklink /d C:\Users\username\OneDrive\notepad++ C:\Users\username\AppData\Roaming\Notepad++\backup

回车后显示:“为 C:\Users\username\OneDrive\notepad++ <<===>> C:\Users\username\AppData\Roaming\Notepad++\backup 创建的符号链接”,即完成。

注意:OneDrive同步文件夹中若已存在此文件夹,则不能创建链接。

接下来就可以在本地文件夹增删文件,OneDrive中会自动同步。

扩展:windows 下的几种常见链接

1,上面建立的链接属于软链接(/j),还有符号链接(/d)和文件的硬链接(/h)。

符号链接和软链接大致相同,区别在于,软链接是绝对路径链接,而符号链接允许相对路径的链接。

比如,分别创建c:\data\tmp的符号链接c:\1和软链接c:\2,那么c:\1指向的就是同级文件夹下的data文件夹下的子文件夹tmp,而c:\2指向的是c:\data\tmp这样的绝对路径。影响就是,如果把c:\1和c:\2这两个文件夹移动到d盘,那d:\1的链接就失效了,而d:\2仍然有效。

文件的硬链接是对文件创建的链接,比如对c:\data\1.txt创建链接c:\data\2.txt,那么这两个文件就是同一个文件的两个等价别名了,相当于是指向同一个硬盘存储空间的两个指针,删除其中任何一个都不影响另一个文件。但是限制就是这种链接不能跨分区。

2,软链接和符号链接不能跨磁盘。

3,这个功能必须是在ntfs文件系统上才能使用。

4,快捷方式
其实我们最熟悉也是最常用的快捷方式并不属于传统概念上的“链接”。虽然似乎快捷方式有点类似于软链接,但是它们的本质还是非常不同的。链接其实更贴近操作系统和文件系统的概念。而快捷方式,其实是一个真真实实的以lnk作为文件类型的文件。只不过操作系统(更确切的说是Windows的shell,explorer)可以对这种lnk文件解释而已。而快捷方式的功能其实也要比传统的Linux或WIndows的软链接的功能更强大一些。如果我们打开一个快捷方式的属性,我们就会发现原来在软链接的属性中不可修改的部分都变成了可以修改的,这里面包含了文件的打开方式,快捷键,以何种窗口模式打开等属性。

也就是说,快捷方式不同于软链接的地方,就是它不仅仅是个包含文件路径的文件,而是增加了许多其他信息。这种和窗口化相关的信息如果基于文件系统自然是非常不便的,所以M$就单独设计了lnk文件,由explorer来执行。

5、比如,我有一个文件夹叫C:\Program Files,但是c盘空间不多了,就想把一些应用程序转移到d盘,但是直接剪切过去肯定行不通,应用程序会报错,所以首先把C:\Program Files文件夹整个移动(剪切)到d盘,再执行命令:

mklink /j "C:\Program Files" "D:\Program Files"

这样c盘下面就会多出一个带快捷方式图标的文件夹,全称就是"C:\Program Files",双击进去其实就转到了D:\Program Files。

而C:\Program Files这个文件夹是对应用程序透明的,也就是说,除了windows自己,应用程序并不知道C:\Program Files下面的东西其实已经转移到d盘了,还当它们仍然在c盘。这样就不影响原来C:\Program Files下的应用程序的使用了。

转载于:https://my.oschina.net/leejun2005/blog/294348

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用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`更改为相应的路径即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值