文件上传,复制,删除文件

1.这是点击"文件上传"(生成一个文件夹,把每次上传的文件放入到这个文件夹里面)

@ResponseBody
@RequestMapping("/upload")
public JSONArray insertMessageXML(MultipartHttpServletRequest request){
    Iterator<String> fileNames = request.getFileNames();
    while (fileNames.hasNext()) {
        //把fileNames集合中的值打出来
        String fileName = fileNames.next();
        System.out.println("fileName: " + fileName);
            /*
         * request.getFiles(fileName)方法即通过fileName这个Key, 得到对应的文件
         * 集合列表. 只是在这个Map中, 文件被包装成MultipartFile类型
      */
        List<MultipartFile> fileList = request.getFiles(fileName);

        if (fileList.size() > 0) {
            //遍历文件列表
            Iterator<MultipartFile> fileIte = fileList.iterator();

            while (fileIte.hasNext()) {
                //获得每一个文件
                MultipartFile multipartFile = fileIte.next();
                //获得原文件名
                String originalFilename = multipartFile.getOriginalFilename();
                System.out.println("originalFilename: " + originalFilename);
                //设置保存路径.
                String path = "D:/temporary/Upload/";
                //检查该路径对应的目录是否存在. 如果不存在则创建目录
                File dir = new File(path);
                if (!dir.exists()) {
                    dir.mkdirs();
                }

                String filePath = path + originalFilename;
                System.out.println("filePath: " + filePath);
                //保存文件
                File dest = new File(filePath);
                if (!(dest.exists())) {
                        /*
              * MultipartFile提供了void transferTo(File dest)方法,
              * 将获取到的文件以File形式传输至指定路径.
             */
                    try {
                        multipartFile.transferTo(dest);

                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }

            }
        }
    }
    //每上传一个文件,把这个文件名返回给前端
    JSONArray jsonArray = new JSONArray();
    List list = new ArrayList();
    File file=new File("D:/temporary/Upload/");
    String test[];
    test=file.list();
    for(int i=0;i<test.length;i++)
    {
        list.add(test[i]);
        System.out.println("D:/temporary/Upload/文件夹下的文件,且文件名为:"+test[i]);
    }
    jsonArray.add(list);
    return jsonArray;
}

2.删除指定文件夹里面的指定文件

@ResponseBody
@RequestMapping("/deleteFile")
public void deleteFile(String name)throws Exception{
    File folder = new File("D:/temporary/Upload/");
    File[] files = folder.listFiles();
    for(File file:files){
        System.out.println(file.getName());
        if(file.getName().equals(name)){
            file.delete();
            System.out.println("被成功删除");
        }
    }
}

3.这是把A文件夹里面的文件全部复制到B文件夹里面(注意:要引一个依赖)

    File file1 = new File("D:/temporary/Upload/");//A文件夹
    File file2 = new File("D:/formal/Upload/");//B文件夹
    try {
        org.apache.commons.io.FileUtils.copyDirectory(file1,file2);
    } catch (IOException e) {
        e.printStackTrace();
    }
    注意这是依赖
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.6</version>
    </dependency>

4.删除指定文件夹里面的所有文件

@ResponseBody
@RequestMapping("/backMaterial")
public void backMaterial(){
    File folder = new File("D:/temporary/Upload/");
    File[] files = folder.listFiles();
    for(File allfile:files){
        System.out.println(allfile.getName());
        allfile.delete();
        System.out.println(allfile.getName()+"被成功删除");
    }
}

5.文件更名(renameTo),注意事项.
(1)java提供了renameTo方法,可以直接将文件名改成我们想要的特定文件名.
(2)文件名中,不能包含特殊的字符.比如 “:” (在我的项目中,因为文件名要改成时间戳+文件名,因此出现了":"这个符号,导致不能成功修改).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值