简介

用java写的网盘类型的文件管理系统后端部分。后端主要通过FilePath和FileName字段确定一个文件(夹),一种模拟文件系统的方式显示。

ApiFox接口文档

注:分片上传功能还未上线。

链接: https://www.apifox.cn/apidoc/shared-4fc7a028-9da9-47ab-8a37-4de4654a4c3d 访问密码 : wSS5eVVb

一些接口的代码实现说明:

项目地址

需要详细细节请看代码仓库
github链接

一些功能实现草稿

文件管理部分:

1)创建新文件夹:

  1. 正常的文件夹重名判断。

重新创建文件夹:

新建文件夹的:执行 mkdir /foo/bar 之后,会创建 /foo、/foo/bar 两个文件夹

2)删除文件夹的:

比如:/nihao1/nihao2/nihao3/nihao4

如果我要删除/nihao4:直接根据/nihao1/nihao2/nihao3和/nihao4删除

如果我要删除/nihao1:先查出/nihao1的全部文件夹和删除全部该层全部文件。

public void delete(String path){List<String> dirs = get(path);//得到该目录下的全部文件夹if(dirs.length==0)return ;deleteFileOrDir(path);//删除全部文件(夹for dir in dirs{delete(path+dir)}
}

3)重命名文件夹:

比如:/nihao1/nihao2/nihao3/nihao4/touxiang.jpg

如果只重命名文件touxiang.jpg:通过/nihao1/nihao2/nihao3/nihao4和touxiang.jpg来重命名

如果重命名文件夹/nihao2/:先通过/nihao1/和/nihao2/修改当前层文件夹名字,再递归对nihao2目录下的文件的父目录名字都修改。

public void renameDigui(String oldPath, String newPath){List<String> dirs = get(oldPath);//得到该目录下的全部文件夹,待递归修改。//得到该目录下全部文件,待全部直接遍历修改就行。for dir in dirs{renameDigui(path+dir);}}

4)复制文件夹:

比如:/nihao1/nihao2/nihao3/nihao4/touxiang.jpg

  1. 如果只复制touxiang.jpg这个文件,就直接修改路径copy就行。其中需要注意的是需要判断目标文件夹有没有同名冲突。
  2. 如果要复制nihao2这个文件夹,同样和上面那个要进行冲突判断,对子文件进行直接修改路径copy就行,对子文件夹需要递归判断。
public void copyDigui(String oldPath, String newPath){List<String> dirs = get(oldPath);//得到该目录下的全部文件夹,待递归复制。直接将当层全部复制就行//得到该目录下全部文件,待全部直接遍历复制就行。if(dirs.length==0)return ;//可要可不要。for dir in dirs{copyDigui(oldPath+dir,newPath+dir);}}

5)移动文件夹:

比如:/nihao1/nihao2/nihao3/nihao4/touxiang.jpg

  1. 如果只移动touxiong.jpg这个文件,就直接修改路径来move就行了。其中需要注意目标文件夹下是不是有冲突文件。
  2. 如果要复制nihao2这个文件夹,同样和上面一样要进行目标路径下有没有冲突文件夹。move文件,对于子文件直接修改路径move就行,对于对于子文件夹就需要进行递归move了

当我写完这个后,我发现可以直接用上面复制文件夹,加一个删除原文件(夹)操作就行了。

public void moveDigui(String oldPath, String newPath){List<String> dirs = get(oldPath);//得到该目录下的全部文件夹,待递归移动。直接将当层全部复制就行//得到该目录下全部文件,待全部直接遍历移动就行。if(dirs.length==0)return ;//可要可不要。for dir in dirs{copyDigui(oldPath+dir,newPath+dir);}}

6)文件上传部分:

MultipartFileToFileUtil类中:默认getOriginalFileName得到的文件时不包含路径“/”的,然后前端传文件夹对象的话,会将路径放到OriginalFilename中去,所以种类就直接用给定的文件名了。

//toFile = new File(file.getOriginalFilename());
log.info("MultipartFileToFileUtil: file.getOriginalFilename() = " + file.getOriginalFilename());
log.info("MultipartFileToFileUtil: fileName = " + fileName);
toFile = new File(fileName);

网盘文件管理系统——java实现相关推荐

  1. Linux下kiftd开机启动,centos7.6 快速架设kiftd私有网盘 文件管理系统

    一 基础环境 安装源ISO CentOS-7-x86_64-DVD-1810 最小化安装系统后先更新 [root@Server ~]# yum update -y [root@Server ~]# c ...

  2. 2022百度网盘目录管理系统

    由于之前的gopan系统无法使用了,所以,我们团队开发了新的目录管理系统, 支持后台绑定百度网盘. 支持扩容盘. 支持扩容盘视频在线播放 支持在线浏览网盘文件 支持在线浏览pdf.word.图片等文档 ...

  3. Windows 下使用 BaiduExporter + Aria2 下载百度网盘文件

    百度盘下载限速,Aria2 可以明显加大下载速度,最近研究了一下如何在 Windows 下使用 Aria2,需要以下三个工具配合使用: BaiduExporter:百度云盘导出下载的 Chrome 插 ...

  4. Google网盘 百度网盘文件互传-Multcloud

    MultCloud 是一款功能比较强大的网盘文件相互转存的在线工具,它支持的国外网盘较多,有Dropbox.Google Drive.Skydrive.Amazon S3.SugarSync.MEGA ...

  5. Linux 下载百度网盘文件

    Linux 下载百度网盘文件 1. 准备环境: centos7.2 python2.7+ pip 2. 安装工具 pip install requests -i https://pypi.douban ...

  6. 教你百度网盘文件转阿里云

    教你百度网盘文件转阿里云 https://www.951961.com/thread-45289-1-1.html

  7. 百度网盘助手-获取网盘文件的下载地址,破解限速

    众所周知,百度网盘的文件已经对非会员进行了各种限速.不过由于国内其他网盘基本都残废了,百度网盘作为仅存的少数几个,需求还是很大的,经常会碰到别人分享的百度网盘文件夹.  今天介绍的这种方法就是通过 c ...

  8. python requests请求下载百度网盘文件

    python requests请求下载百度网盘文件 注意:这里需要添加网盘账号的cookie值,可以手动登录账号复制cookie(浏览器登录账号后按F12 > 点击Network > 刷新 ...

  9. php网盘 共享 直链,PHP比较简单的百度网盘文件直链的实现方法

    这篇文章主要为大家详细介绍了PHP比较简单的百度网盘文件直链的实现方法,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧! 百度网盘速度快,稳定性好,你值得 ...

最新文章

  1. 测试三相无刷电机驱动器 XXD2212 电调
  2. MySQL中的重做日志(redo log),回滚日志(undo log),以及二进制日志(binlog)的简单总结
  3. ECShop替换FCKeditor编辑器为KindEditor
  4. HDU 6709“Fishing Master”(贪心+优先级队列)
  5. 局域网内多台linux服务器时间同步的一种解决方案
  6. mysql中使用BETWEEN  AND
  7. Java中的Runnable、Callable、Future、FutureTask的区别与示例
  8. marker 头像 高德地图_高德地图上线马丽导航语音
  9. KVM虚拟机在线扩展磁盘空间
  10. ci源码解析之CodeIgniter.php
  11. 以太坊分叉的缘由:著名的The DAO事件
  12. 微服务:知识点梳理(SOA、服务拆分、服务治理、分布式事务)
  13. python贪吃蛇代码
  14. 苹果笔记本什么系统_收集整理:什么笔记本适合安装黑苹果系统!
  15. Tomcat官网下载对应版本
  16. 2018下半年Android面试历程
  17. SAP中会计凭证清账关系
  18. Tp5设置参数全局过滤方法
  19. 国家自然科学基金 计算机视觉,【科研新成果】我院2019年国家自然科学基金项目取得新突破...
  20. CandidateScorer

热门文章

  1. ncurses库的安装与入门
  2. 全桥DCDC输出电压和变比占空比的关系
  3. 李在镕谈三星S8:加强人工智能服务 摄像头强大
  4. .pth转.weights/openCV-python + YOLO v3实现目标检测
  5. 镜头上的四线电机怎么驱动_用于驱动镜头的电机的制作方法
  6. 鸿蒙为什么翻译成harmony,鸿蒙的英文名为什么取的是Harmony
  7. NXP SPIFI(QSPI)应用详解与程序固件分散加载
  8. 复合函数求导经典例题_简单复合函数求导法则(最经典).ppt
  9. 乳业何以自信?来自呼和浩特的48小时观察
  10. 浅析音乐对现代社会的影响