【java辦公自動化(3)】-- 批量創建、複製、移動、刪除、重命名文件及文件夾
需求前言
簡單的單文件複製粘貼誰都會,ctrl+c ctrl+v誰都知道。但是加個批量且秒完成,誰能做到,你說python能,但今天我們用java實現一下。
效果展示
代碼展示
package com.yanhui.controller.manage.code;
import com.yanhui.common.pojo.RequestData;
import com.yanhui.common.utils.FileUtils;
import com.yanhui.controller.BaseController;
import com.yanhui.util.file._fileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.File;
import java.util.List;
@Controller
@RequestMapping("/dirfile")
public class DirfileController extends BaseController {
@RequestMapping("/createDir")
public String createDir(Model model) {
model.addAttribute("code","C:\\Users\\yanhui\\Desktop\\test");
model.addAttribute("code1","a,b,c");
model.addAttribute("code2","(豔輝網)");
return "dirfile/createDir";
}
@RequestMapping("/createDirFile")
public String createDirFile(Model model) {
//c:\test\1-a(豔輝網)
model.addAttribute("code","C:\\Users\\yanhui\\Desktop\\test\\1-a(豔輝網)");
model.addAttribute("code1","a,b,c");
model.addAttribute("code2","(豔輝網)");
model.addAttribute("code3","mp4");
return "dirfile/createDirFile";
}
@RequestMapping("/updFileName")
public String updFileName(Model model) {
model.addAttribute("code","C:\\Users\\yanhui\\Desktop\\test");
model.addAttribute("code1","jpg");
model.addAttribute("code2","豔輝網");
return "dirfile/updFileName";
}
@RequestMapping("/copyDir")
public String copyDir(Model model) {
model.addAttribute("code1","C:\\Users\\yanhui\\workspace\\yhStudy2");
model.addAttribute("code2","C:\\Users\\yanhui\\workspace\\yhStudy3");
return "dirfile/copyDir";
}
@RequestMapping("/copyDirFile")
public String copyDirFile(Model model) {
model.addAttribute("code1","C:\\test\\study\\db\\db_base.sql");
model.addAttribute("code2","C:\\test\\study\\db\\db_base2.sql");
return "dirfile/copyDirFile";
}
@RequestMapping("/renameFile")
public String renameFile(Model model) {
model.addAttribute("code1","C:\\Users\\yanhui\\Desktop\\movie\\上流世界.mkv");
model.addAttribute("code2","C:\\Users\\yanhui\\Desktop\\movie\\上流世界.mp4");
return "dirfile/renameFile";
}
@RequestMapping("/renameAllFile")
public String renameAllFile(Model model) {
model.addAttribute("code1","C:\\Users\\yanhui\\Desktop\\movie");
return "dirfile/renameAllFile";
}
@RequestMapping("/moveFile")
public String moveFile(Model model) {
model.addAttribute("code1","C:\\Users\\yanhui\\Desktop\\movie\\上流世界.mkv");
model.addAttribute("code2","C:\\Users\\yanhui\\Desktop\\movie\\");
return "dirfile/moveFile";
}
@PostMapping("/createDirEdit")
@ResponseBody
public RequestData createDirEdit(String code1, String code2, String code) {
RequestData r = new RequestData();
try {
String path = code;
// 字符串轉數組 java.lang.String
String str = code1;
String[] arr = str.split(","); // 用,分割
String[] files = arr;
String suffixName = code2;
// //1-a(豔輝網)
// 1、批量生成文件夾
_fileUtils.multiFloder(path, files , suffixName);
r.setCode("SUCCESS");
r.setMsg("操作成功!");
} catch (Exception e) {
r.setCode("ERROR");
r.setMsg("操作失敗:"+e.getMessage());
return r;
}
return r;
}
@PostMapping("/createDirFileEdit")
@ResponseBody
public RequestData createDirFileEdit(String code1, String code2, String code3, String code) {
RequestData r = new RequestData();
try {
// 2、批量生成文件
String[] files = code1.split(","); // 用,分割
_fileUtils.multiFile(code, files , code2, code3);
r.setCode("SUCCESS");
r.setMsg("操作成功!");
} catch (Exception e) {
r.setCode("ERROR");
r.setMsg("操作失敗:"+e.getMessage());
return r;
}
return r;
}
@PostMapping("/updFileNameEdit")
@ResponseBody
public RequestData updFileNameEdit(String code1, String code2, String code3, String code) {
RequestData r = new RequestData();
try {
_fileUtils replacementChain = new _fileUtils();
replacementChain.addRegulation("."+code1, "_"+code2+"."+code1);
// 3、批量修改文件名稱
_fileUtils.multiRename(code, replacementChain);
r.setCode("SUCCESS");
r.setMsg("操作成功!");
} catch (Exception e) {
r.setCode("ERROR");
r.setMsg("操作失敗:"+e.getMessage());
return r;
}
return r;
}
@PostMapping("/copyDirEdit")
@ResponseBody
public RequestData copyDirEdit(String code1, String code2, String code3, String code) {
RequestData r = new RequestData();
try {
_fileUtils.copyDirectiory(code1, code2);
r.setCode("SUCCESS");
r.setMsg("操作成功!");
} catch (Exception e) {
r.setCode("ERROR");
r.setMsg("操作失敗:"+e.getMessage());
return r;
}
return r;
}
@PostMapping("/copyDirFileEdit")
@ResponseBody
public RequestData copyDirFileEdit(String code1, String code2, String code3, String code) {
RequestData r = new RequestData();
try {
_fileUtils.copyFile(new File(code1),
new File(code2));
r.setCode("SUCCESS");
r.setMsg("操作成功!");
} catch (Exception e) {
r.setCode("ERROR");
r.setMsg("操作失敗:"+e.getMessage());
return r;
}
return r;
}
@PostMapping("/renameFileEdit")
@ResponseBody
public RequestData renameFileEdit(String code1, String code2) {
RequestData r = new RequestData();
try {
FileUtils.renameFile(code1, code2);
// FileUtils.moveFile(code1, code2);
r.setCode("SUCCESS");
r.setMsg("操作成功!");
} catch (Exception e) {
r.setCode("ERROR");
r.setMsg("操作失敗:"+e.getMessage());
return r;
}
return r;
}
@PostMapping("/moveFileEdit")
@ResponseBody
public RequestData moveFileEdit(String code1, String code2) {
RequestData r = new RequestData();
try {
FileUtils.moveFile(code1, code2);
r.setCode("SUCCESS");
r.setMsg("操作成功!");
} catch (Exception e) {
r.setCode("ERROR");
r.setMsg("操作失敗:"+e.getMessage());
return r;
}
return r;
}
@PostMapping("/renameAllFileEdit")
@ResponseBody
public RequestData renameAllFileEdit(String code1) {
RequestData r = new RequestData();
try {
List<String> list = FileUtils.getAbsoluteFile(code1);
for(String str:list){
// C:\Users\yanhui\Desktop\movie2\不情願的新娘[泰劇]-04.mp4
String str2 = str.substring(str.lastIndexOf("\\")+1,str.lastIndexOf("."));
String str3 = str.substring(0, str.lastIndexOf("\\"));
String str4 = str.substring(str.lastIndexOf("."), str.length());
// System.out.println(str2+" "+str3 + " "+ str4);
str2 = str2.replaceAll("\\[","");
str2 = str2.replaceAll("\\]","");
str2 = str2.replaceAll("-","");
str2 = str2.replaceAll("\\.","");
FileUtils.renameFile(str, str3+"\\"+str2+str4);
}
r.setCode("SUCCESS");
r.setMsg("操作成功!");
} catch (Exception e) {
r.setCode("ERROR");
r.setMsg("操作失敗:"+e.getMessage());
return r;
}
return r;
}
}
難點分析
1、實現文件快速讀寫操作
擴展需求
- 1、實現對文件夾及文件的增刪改查
- 2、實現文件內容的增刪改查
- 3、文件類型的識別
- 4、也就是java操控一切文件
知識付費
如需獲取代碼,請加WX(bin490647751),支付9.9元,可獲取【java辦公自動化】系列文章。