Skip to content

0x07 操作回收站

ZaxTyson edited this page May 1, 2020 · 3 revisions

.get_rec_dir_list()

获取回收站文件夹列表

注意 : 回收站中文件(夹)名只能显示前 17 个中文字符或者 34 个英文字符,如果这些字符相同,则在文件(夹)名后添加 (序号) ,以便区分

示例 :

>>> lzy.get_rec_dir_list()
<List RecFolder(name='some_music', id=1452180, size='8.9 M', time='2020-03-03', files=None), RecFolder(name='some_file', id=1452178, size='7.5 M', time='2020-03-03', files=None)>

.get_rec_file_list(folder_id)

获取回收站某文件夹里的文件列表

参数 类型 说明 必填 备注
folder_id int 文件夹id N 默认-1(根目录)

说明 :

  • 删除的文件会显示在回收站根目录,文件恢复后,被保存在网盘根目录
  • 删除的文件夹也显示在回收站根目录,同时,文件夹里面的文件也会显示在回收站根目录(蓝奏云的bug)!恢复文件夹后,文件夹回到它在网盘中原本的路径,若单独恢复文件夹里的文件,则文件会被保存在网盘根目录
  • 回收站根目录下文件的属性: nametypeidtime
  • 回收站文件夹下文件的属性: nametypeidsize

示例 :

>>> lzy.get_rec_file_list()  # 根目录文件
<List RecFile(name='3.what3.zip', id=18345453, type='zip', size='', time='2020-03-03'), RecFile(name='Source-Code-Pro.zip', id=18376974, type='zip', size='', time='2020-03-03')>

>>> lzy.get_rec_file_list(1452178)
<List RecFile(name='DNS优选.exe', id=18377136, type='exe', size='655.0 K', time=''), RecFile(name='WinHex.19.7.7z', id=18377167, type='7z', size='3.0 M', time=''), RecFile(name='curl-7.67.0.tar.azw', id=18377156, type='azw', size='3.9 M', time='')>


.get_rec_all()

获取整理后回收站的全部信息 (推荐使用)

说明 :

  • 本方法通过遍历回收站下所有文件夹,实现 真•根目录文件文件夹中文件 的分离,并通过根目录下同名文件的 time 信息补全了 文件夹中文件 的信息

  • 若用户手动删除了 文件夹中文件 在根目录的同名文件,会导致文件仍然存在,只是不会在根目录显示。这时 文件夹中文件time 属性设置为该文件夹的创建日期

  • 本方法调用的时间开销取决于回收站文件夹的数量

示例:

>>> rec_files, rec_folders = lzy.get_rec_all()
>>> rec_files   # 回收站根目录文件
<List RecFile(name='3.what3.zip', id=18345453, type='zip', size='', time='2020-03-03'), RecFile(name='Source-Code-Pro.zip', id=18376974, type='zip', size='', time='2020-03-03')>

>>> rec_folders
<List RecFolder(name='some_music', id=1452180, size='8.9 M', time='2020-03-03', files=<List RecFile(name='网易笑招SHE - 浙江杭州网易互联网招.mp3', id=18377204, type='mp3', size='3.3 M', time='2020-03-03'), RecFile(name='雲翼星辰 - 黑暗森林(原曲:Schwarzer Re.mp3', id=18377214, type='mp3', size='5.6 M', time='2020-03-03')>), RecFolder(name='some_file', id=1452178, size='7.5 M', time='2020-03-03', files=<List RecFile(name='DNS优选.exe', id=18377136, type='exe', size='655.0 K', time='2020-03-03'), RecFile(name='WinHex.19.7.7z', id=18377167, type='7z', size='3.0 M', time='2020-03-03'), RecFile(name='curl-7.67.0.tar.azw', id=18377156, type='azw', size='3.9 M', time='2020-03-03')>)>

>>> rec_folders[0].name   # 第一个文件夹的名字
'some_music'

>>>> rec_folders[0].files   # 第一个文件夹的文件列表
<List RecFile(name='网易笑招SHE - 浙江杭州网易互联网招.mp3', id=18377204, type='mp3', size='3.3 M', time='2020-03-03'), RecFile(name='雲翼星辰 - 黑暗森林(原曲:Schwarzer Re.mp3', id=18377214, type='mp3', size='5.6 M', time='2020-03-03')>

注意 :

  • 回收站根目录下文件的属性: nameidtypetime
  • 回收站文件夹里文件的属性: nameidtypetimesize
  • 回收站文件夹本身的属性: nameidsizetimefiles

.recovery(fid, is_file)

从回收站恢复文件(夹)

参数 类型 说明 必填 备注
fid int 文件(夹)id Y -
is_file bool 是否为文件id N 默认True

示例 :

>>> lzy.recovery(12741016) == LanZouCloud.SUCCESS
True

返回值 :

  • 成功返回 : LanZouCloud.SUCCESS
  • 失败返回 : LanZouCloud.FAILED
  • 网络异常 : LanZouCloud.NETWORK_ERROR

注意:

  • 文件恢复后保存在网盘根目录
  • 文件夹恢复后保存在网盘原目录
  • 执行恢复操作约 1.5s 后才能调用获取回收站信息的函数,否则被删除的文件(夹)信息没有刷新

.recovery_all()

恢复全部文件(夹)

返回值: 同 .recovery()


.recovery_multi(files, folders)

批量恢复文件(夹)

参数 类型 说明 必填 备注
files List[int] 文件id列表 N 关键字参数
folders List[int] 文件夹id列表 N 关键字参数

示例 :

>>> lzy.recovery_multi(files=[12345, 12346], folders=[54321]) == LanZouCloud.SUCCESS
True

返回值: 同 .recovery()


.delete_rec(fid, is_file)

彻底删除回收站的文件(夹)

参数 类型 说明 必填 备注
fid int 文件(夹)id Y -
is_file bool 是否为文件id N 默认True

示例 :

>>> lzy.delete_rec(12741016) == LanZouCloud.SUCCESS
True

返回值 :

  • 删除成功 : LanZouCloud.SUCCESS
  • 删除失败 : LanZouCloud.FAILED
  • 网络异常 : LanZouCloud.NETWORK_ERROR

.delete_rec_multi(files, folders)

批量删除文件(夹)

参数 类型 说明 必填 备注
files List[int] 文件id列表 N 关键字参数
folders List[int] 文件夹id列表 N 关键字参数

示例 :

>>> lzy.delete_rec_multi(files=[12345, 12346], folders=[54321]) == LanZouCloud.SUCCESS
True

返回值: 同 .delete_rec()


.clean_rec()

清空回收站

示例 :

>>> lzy.clean_recycle() == LanZouCloud.SUCCESS
True

返回值 :

  • 清空成功 : LanZouCloud.SUCCESS
  • 清空失败 : LanZouCloud.FAILED
  • 网络异常 : LanZouCloud.NETWORK_ERROR

.clean_ghost_folders()

清空"幽灵文件夹"

说明: 这类文件夹没有合法的父文件夹,不会在网盘和回收站显示, 移动文件时可以看见, 移动进去普通用户就找不着了。正常情况用不上。

返回值 :

  • 清空成功 : LanZouCloud.SUCCESS
  • 清空失败 : LanZouCloud.FAILED