最近微信onedrive封停大量的教育账户。在10月之间要求下载备份迁移完资源后关停。目前文件夹都是只读状态,无法删除(提示没有超级管理员权限,主要是onedrive有一个特殊账号接管了,所有的管理员账户都没有权限)。
云端资源下载后,在onedrive客户端,在设置-账户中取消此链接电脑。然后耐心等一段时间后(如果不等就关闭进程,会导致部分文件夹无法删除),就可以彻底变成正常文件夹。
新问题来了,原来云端同步后,释放空间的文件夹,还有本地保留文件的文件夹都混到一起了。一个个删除空文件夹在费时间。
当然可以写个dos批处理bat文件
@echo off
rd/s/q "e:\onedrive-person"
执行时,经常卡住,执行效率太差了。
于是想到用python写个程序,来做这件事吧,上代码:
import os
def rm(path1):
# 返回当前目录下的内容。文件或文件夹
# print(path)
fls = os.listdir(path1)
if len(fls)==0:
# print('当前文件夹为空')
print(f"删除:{path1}")
# os.rmdir(path1)
return
for p in fls:
p2 = f'{path1}\\{p}'
if os.path.isdir(p2):
# print(f'进入{p2}')
rm(p2)
if os.path.exists(p2) and len(os.listdir(p2)) == 0: # 里面删除后这个可能就是空文件了
print(f"删除:{p2}")
os.rmdir(p2) #在这里执行删除
if __name__ == '__main__':
rm(os.getcwd())
os.system('pause') # 按任意键退出
'''
# 测试
path = os.getcwd() # 返回当前工作目录
# 删除空目录 os.rmdir(path)
# dir = os.path.isdir(path) # 判断是否是目录
files = os.listdir(r'E:\baidu-onedrive\OneDrive - odb') # 目录下的文件或文件夹
print(len(files))'''
执行,可以看进度,很快不卡,一且ok。