自己动手用Springboot实现仿百度网盘

return b;

}

@Override

public String download(String fileName, String userName, String path) {

// 服务器下载的文件所在的本地路径的文件夹

String saveFilePath = fileRootPath + userName + “/” + path;

logger.warn(“1 saveFilePath:” + saveFilePath);

// 判断文件夹是否存在-建立文件夹

File filePathDir = new File(saveFilePath);

if (!filePathDir.exists()) {

filePathDir.mkdir();

}

// 本地路径

saveFilePath = saveFilePath + “/” + fileName;

String link = saveFilePath.replace(fileRootPath, “/data/”);

link = StringUtil.stringSlashToOne(link);

logger.warn(“返回的路径:” + link);

return link;

}

@Override

public List userFileList(String userName, String path) {

logger.warn(“执行userFileList函数!”);

List fileMsgList = new ArrayList<>();

// 拉取文件列表-本地磁盘

String webSaveFilePath = fileRootPath + userName + “/” + path;

File files = new File(webSaveFilePath);

if (!files.exists()) {

return fileMsgList;

}

File[] tempList = files.listFiles();

if (tempList == null) {

return fileMsgList;

}

for (File file : tempList) {

if (file.isFile()) {

FileMsg fileMsg = new FileMsg();

// 获取文件名和下载地址

String link = file.toString().replace(“\”, “/”);

String[] nameArr = link.split(“/”);

String name = nameArr[nameArr.length - 1];

link = link.replace(fileRootPath, “/data/”);

link = link.replace(“/root/pan/”, “/data/”);

String size = FileUtil.fileSizeToString(file.length());

SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

String lastModTime = formatter.format(file.lastModified());

// 赋值到json

fileMsg.setName(name);

fileMsg.setLink(link);

fileMsg.setSize(size);

fileMsg.setTime(lastModTime);

if (FileUtil.isMp4(name)) {

fileMsg.setType(“mp4”);

} else if (FileUtil.isVideo(name)) {

fileMsg.setType(“video”);

} else {

fileMsg.setType(“file”);

}

fileMsgList.add(fileMsg);

} else {

FileMsg fileMsg = new FileMsg();

String link = file.toString().replace(“\”, “/”);

String[] nameArr = link.split(“/”);

String name = nameArr[nameArr.length - 1];

String dirPath = link.replace(fileRootPath + userName, “”);

if (!name.equals(“userIcon”)) {

fileMsg.setName(name);

fileMsg.setSize(“Directory”);

fileMsg.setType(“dir”);

fileMsg.setLink(dirPath);

SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

String lastModTime = formatter.format(file.lastModified());

fileMsg.setTime(lastModTime);

fileMsgList.add(fileMsg);

}

}

}

//排序

ListUtil.listSort(fileMsgList);

return fileMsgList;

<
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现仿百度网盘的功能,可以运用C语言的文件读取函数fopen()、fgets()、fscanf()来进行文件读、写操作,并使用fscanf()==EOF来判定文件是否读取到末尾。此外,还可以使用Qt框架来实现一个关于小区的数据管理系统,该系统可以通过配置环境来运行。同时,在Linux环境下,也可以使用C语言来实现类似于百度网盘的功能,包括注册、登录、文件列表、上传文件、下载文件、历史记录和退出功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [C语言实现钢琴块小游戏(低仿拉胯版)](https://blog.csdn.net/qq_50534112/article/details/122591117)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [C语言程序大作业:Qt实现的一个关于小区的数据管理系统.zip](https://download.csdn.net/download/qq_35831906/88259206)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [小度网盘(C语言,linux终端](https://blog.csdn.net/m0_71571889/article/details/127078433)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值