【java辦公自動化(3)】-- 批量創建、複製、移動、刪除、重命名文件及文件夾

【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辦公自動化】系列文章。

發佈了223 篇原創文章 · 獲贊 67 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章