当前位置: 首页 > news >正文

Easy云盘总结篇-回收站

说在前面:此项目是跟着B站一位大佬做的,不分享源码,支持项目付费

文章目录

    • 文件列表
    • 恢复文件
    • 彻底删除

文件列表

在这里插入图片描述
在这里插入图片描述
这个逻辑没啥好说的,根据状态RECYLE在数据库里查询。

恢复文件

这个逻辑和之前的将文件添加进回收站的逻辑差不多就是相反的,前面懂了,这里就很好理解,可以先去看之前的文章:删除文件,再来看这节。
首先要清除,无论之前删的是哪一级的文件(夹),将它还原,就只能将它还原到根目录下,不可能说还原到原来的目录,那不符合常理。
然后就是还原的时候还要考虑到根目录下是否有重名文件(夹),要进行重命名

先说最简单的,恢复一个文件
在这里插入图片描述
这里恢复文件1。
在这里插入图片描述

这里因为是文件1,直接绕过for到下面。然后就先用Map装了所有根目录(file_pid=0)的文件(夹)
走到updateFileDelFlagBatch(null, delFileIdList) 这,将文件1状态更新为USING(使用中),然后再处理是否重命名问题。

再来说还原文件夹1:
这里fileInfoList只装有文件夹1,然后进入for循环里的递归,将文件夹1下的所有子文件夹(也就是文件夹2,状态为DEL)装进delFileSubFolderFileIdList里。
然后走updateFileDelFlagBatch(delFileSubFolderFileIdList, null),将file_pid为文件夹1和文件夹2的file_id的文件(也就是文件2和文件夹2)状态更新为USING(使用中),但是他们的其他就不再变化,父Id仍然是文件1的file_id。
在这里插入图片描述
然后就是处理选中的文件夹1,将它的父id设置为根目录(filePid=0),
updateFileDelFlagBatch(null, delFileIdList),将文件夹1状态设置为USING,最后处理重命名问题,结束。

总的来说,先将子文件(夹)(原状态为DEL)设置为USING,再来将选中文件(夹)(原状态为RECYLE)设置成USING,并更改其file_pid=0

彻底删除

在这里插入图片描述
其实和前面删除文件的逻辑类似,可以先看这个:删除文件,再来看这个,就很好理解了。
在这里插入图片描述

先说彻底删除一个文件
直接走到delFileBatch(null,Arrays.asList(fileIdArray)),将文件1删除
在这里插入图片描述
在这里插入图片描述

如果是彻底删除一个文件夹1
先找到文件夹1及其子文件夹(文件夹2),
delFileBatch(delFileSubFileFolderIdList,null),将父id为文件夹1和文件夹2的file_id并且原状态为DEL(删除)的子文件(夹),也就是文件2和文件夹2删除,
最后
走**delFileBatch(null,Arrays.asList(fileIdArray))**将文件夹1删除。

这回的删除就不再是更改状态,而是从数据库里删除,所以还要更新空间使用
在这里插入图片描述

相关文章:

  • 常见的位置编码 Positional Encoding
  • 1. std::result_of是什么?为什么它出现?
  • c++存储持续性和链接性
  • Netty的内存池机制怎样设计的?
  • Webug4.0靶场通关笔记15- 第19关文件上传(畸形文件)
  • 服务器端的准备工作
  • 求解器介绍之gurobi
  • Linux电源管理(6)_Generic PM之挂起功能
  • 【自然语言处理与大模型】LlamaIndex的数据连接器和对话引擎
  • 二、Python变量基础(2)
  • 30天开发操作系统 第27天 -- LDT与库
  • 工业主义与民主的兴衰:历史逻辑与未来危机
  • uniswap v4 合约解析1 pool初始化
  • VTK 数据结构和算法类介绍
  • pyqt写一个单片机配置界面
  • 基于YOLOv的目标检测训练数据构建方法研究—图像采集、标注、划分与增强一体化流程设计
  • java单元测试代码
  • Python中的JSON库,详细介绍与代码示例
  • 《RESTful API版本控制的哲学思辨:稳定性与创新性的终极平衡》
  • Node.js 是什么?
  • 特朗普要征电影关税惊扰全球电影业,“让好莱坞再次伟大”或现反效果
  • 体坛联播|米兰逆转热那亚豪取3连胜,阿诺德官宣离开利物浦
  • 全国共有共青团员7531.8万名,共青团组织439.7万个
  • 挑大梁!一季度北上广等7省份进出口占外贸总值四分之三
  • 苹果第二财季营收增长5%,受关税政策影响预计下一财季新增9亿美元成本
  • 取消了“仅退款”,商家就可以高枕无忧了吗?