Java创建、重命名、删除文件和文件夹

Java的文件操作太基础,缺乏很多实用工具,比如对目录的操作,支持就非常的差了。如果你经常用Java操作文件或文件夹,你会觉得反复编写这些代码是令人沮丧的问题,而且要大量用到递归。

    下面是的一个解决方案,借助Apache Commons IO工具包(commons-io-1.1.jar)来简单实现文件(夹)的复制、移动、删除、获取大小等操作。

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import java.io.*;

/**
* 文件工具箱
*
* @author leizhimin 2008-12-15 13:59:16
*/
public final class FileToolkit {
        private static final Log log = LogFactory.getLog(FileToolkit.class);

        /**
         * 复制文件或者目录,复制前后文件完全一样。
         *
         * @param resFilePath 源文件路径
         * @param distFolder    目标文件夹
         * @IOException 当操作发生异常时抛出
         */
        public static void copyFile(String resFilePath, String distFolder) throws IOException {
                File resFile = new File(resFilePath);
                File distFile = new File(distFolder);
                if (resFile.isDirectory()) {
                        FileUtils.copyDirectoryToDirectory(resFile, distFile);
                } else if (resFile.isFile()) {
                        FileUtils.copyFileToDirectory(resFile, distFile, true);
                }
        }

        /**
         * 删除一个文件或者目录
         *
         * @param targetPath 文件或者目录路径
         * @IOException 当操作发生异常时抛出
         */
        public static void deleteFile(String targetPath) throws IOException {
                File targetFile = new File(targetPath);
                if (targetFile.isDirectory()) {
                        FileUtils.deleteDirectory(targetFile);
                } else if (targetFile.isFile()) {
                        targetFile.delete();
                }
        }

        /**
         * 移动文件或者目录,移动前后文件完全一样,如果目标文件夹不存在则创建。
         *
         * @param resFilePath 源文件路径
         * @param distFolder    目标文件夹
         * @IOException 当操作发生异常时抛出
         */
        public static void moveFile(String resFilePath, String distFolder) throws IOException {
                File resFile = new File(resFilePath);
                File distFile = new File(distFolder);
                if (resFile.isDirectory()) {
                        FileUtils.moveDirectoryToDirectory(resFile, distFile, true);
                } else if (resFile.isFile()) {
                        FileUtils.moveFileToDirectory(resFile, distFile, true);
                }
        }


        /**
         * 重命名文件或文件夹
         *
         * @param resFilePath 源文件路径
         * @param newFileName 重命名
         * @return 操作成功标识
         */
        public static boolean renameFile(String resFilePath, String newFileName) {
                String newFilePath = StringToolkit.formatPath(StringToolkit.getParentPath(resFilePath) + "/" + newFileName);
                File resFile = new File(resFilePath);
                File newFile = new File(newFilePath);
                return resFile.renameTo(newFile);
        }

        /**
         * 读取文件或者目录的大小
         *
         * @param distFilePath 目标文件或者文件夹
         * @return 文件或者目录的大小,如果获取失败,则返回-1
         */
        public static long genFileSize(String distFilePath) {
                File distFile = new File(distFilePath);
                if (distFile.isFile()) {
                        return distFile.length();
                } else if (distFile.isDirectory()) {
                        return FileUtils.sizeOfDirectory(distFile);
                }
                return -1L;
        }

        /**
         * 判断一个文件是否存在
         *
         * @param filePath 文件路径
         * @return 存在返回true,否则返回false
         */
        public static boolean isExist(String filePath) {
                return new File(filePath).exists();
        }

        /**
         * 本地某个目录下的文件列表(不递归)
         *
         * @param folder ftp上的某个目录
         * @param suffix 文件的后缀名(比如.mov.xml)
         * @return 文件名称列表
         */
        public static String[] listFilebySuffix(String folder, String suffix) {
                IOFileFilter fileFilter1 = new SuffixFileFilter(suffix);
                IOFileFilter fileFilter2 = new NotFileFilter(DirectoryFileFilter.INSTANCE);
                FilenameFilter filenameFilter = new AndFileFilter(fileFilter1, fileFilter2);
                return new File(folder).list(filenameFilter);
        }

        /**
         * 将字符串写入指定文件(当指定的父路径中文件夹不存在时,会最大限度去创建,以保证保存成功!)
         *
         * @param res            原字符串
         * @param filePath 文件路径
         * @return 成功标记
         */
        public static boolean string2File(String res, String filePath) {
                boolean flag = true;
                BufferedReader bufferedReader = null;
                BufferedWriter bufferedWriter = null;
                try {
                        File distFile = new File(filePath);
                        if (!distFile.getParentFile().exists()) distFile.getParentFile().mkdirs();
                        bufferedReader = new BufferedReader(new StringReader(res));
                        bufferedWriter = new BufferedWriter(new FileWriter(distFile));
                        char buf[] = new char[1024];         //字符缓冲区
                        int len;
                        while ((len = bufferedReader.read(buf)) != -1) {
                                bufferedWriter.write(buf, 0, len);
                        }
                        bufferedWriter.flush();
                        bufferedReader.close();
                        bufferedWriter.close();
                } catch (IOException e) {
                        flag = false;
                        e.printStackTrace();
                }
                return flag;
        }
}

Python之achatbot包语法、参数和实际应用案例 本书是一本PyTorch深度学习实战指南,分为基础(前6章)和进阶(后5章)两大部分。基础部分涵盖张量运算、神经网络、数据预处理及CNN等核心内容;进阶部分则深入图像、文本、音频建模技术,重点解析Transformer架构及大语言模型开发。全书采用"理论+实践"模式,适合从零基础到进阶的PyTorch学习者。 阅读详情

相关推荐

点云PCL库学习-双目图像转化为点云PCD并显示

文章目录 双目视觉模型 代码实现 总结 参考文章 一、双目视觉模型 和RGBD相机主动发射光线实现测距不同,双目测距原理通过配置立体摄像头(通常由左眼相机和右眼相机两个水平放置的相机组成)来获取一对同一场景中的二维图像,再基于同一空间点在两个坐标系下的视差来计算深度。双目测距的示意图和数学表达式如下所示: 双目相机的成像示意图 上述示意图描述了一个空间点在左右两目相机中位置之间的成像关系,根据相似三角形原理可得: 其中,f和b分别为相机焦距和双目相机基线,d为空间点在两个坐标系下

weixin_41957687的博客 6948

现代操作系统随心笔记(第四章 文件系统)学习理解+面试复习

文章目录第四章随心记录问题部分1、文件构成结构有哪些2、文件目录系统有哪些3、文件储存实现有哪几种方法 优缺点 第四章随心记录问题部分 1、文件构成结构有哪些 2、文件目录系统有哪些 3、文件储存实现有哪几种方法 优缺点 ...

Love 6's Private Blog 991

稳健自适应波束形成学习(2):自适应计算对角加载量方法——基于广义线性组合的鲁棒Capon波束形成

对于快拍数相对阵元数较小时,样本协方差矩阵不能很好对协方差矩阵进行估计。常规的对角加载量需要根据经验值或不断手动调整进行测试,没有一个明确的准则和推导。该篇介绍一种自适应计算对角加载量的方法,且能适应快拍数相对阵元数较小时的情况。均匀线阵阵元数:18;载波频率30MHz;通信信号来波方向0°、来波估计偏差0.5°;干扰来波方向30°;通信信号信噪比10dB;干扰信号信噪比60dB。也即在干扰角度生成66dB的零陷,通信信号受到16dB的衰减。

a1uajug的博客 825

文件夹操作-创建/删除/重命名/复制文件夹

前言 项目进行过程中遇到一些文件夹相关操作,本文主要是删除指定目录。 c++代码如下: /************************************************************************ * Copyright(c) 2016 ZRJ * All rights reserved. * * File: main.cpp ...

weixin_30586085的博客 287

dq轴坐标系下的电路方程

dq轴坐标系下的电路方程 dq轴坐标系是一种常见的电路方程,但是再dq轴坐标系下电路元件的电压电流dq轴存在一定的耦合,本文针对三相电路推导了dq轴坐标系下的电路电路方程进行一个推导,首先先列出来派克变换的公式 派克变换 [AdAqA0]=23[cos⁡(θ)cos⁡(θ−2π/3)cos⁡(θ+2π/3)−sin⁡(θ)−sin⁡(θ−2π/3)−sin⁡(θ+2π/3)1/21/21/2][AaAbAc]\left[\begin{array}{c}A_d\\A_q\\A_0 \end{array}\ri

Mr.Young的博客 1万+

告别谷歌翻译失效!手把手教你用Immersive Translate插件实现双语网页阅读(附Chrome/Edge/Firefox保姆级配置)

本文详细介绍了如何使用Immersive Translate插件实现双语网页阅读,解决谷歌翻译失效的问题。通过Chrome、Edge和Firefox的保姆级配置指南,帮助用户轻松安装和使用这款支持双语对照、智能识别网页内容的翻译插件,提升外文资料阅读效率。

weixin_28683689的博客 487

关于FAT32文件系统<2>——文件夹重命名操作与删除文件夹操作造成的目录项的不同之处

在FAT32文件系统中,如果对一个文件夹进行重命名操作,系统可能会删除原有目录项(将原有目录项的每一项的第一个字节改成0xE5)并重新创建一个新目录项,而对一个文件夹直接进行删除操作,系统会直接在目录项前加0xE5。两者的不同之处在于,因重命名操作而删除的目录项的短文件名目录项的最后4个字节都为0,而进行删除文件夹操作造成的目录项删除的短文件名目录项的最后4个字节为0x00、0x10、0x00、0...

hsbdbshs124346的博客 2151

voc与txt互转

voc2txt # coding:utf-8 from __future__ import print_function import os import random import glob import xml.etree.ElementTree as ET def xml_reader(filename): """ Parse a PASCAL VOC xml file """ tree = ET.parse(filename) size = tree.find('siz

weixin_44898889的博客 826

Java的文件拷贝和文件删除

java没有拷贝函数,不能删除含有文件目录,需要自己实现。 public static boolean fileCopy(File src, File destDir){ if(!destDir.exists()){ destDir.setWritable(true); destDir.setReadable(true); boolean res = destDir.mkdirs();

334

UDPProbe UDP端口存活探测(发送特征包+响应分析)、UDP服务识别

qDebug() << "收到响应:" << ip.toString() << ":" << port << " 服务:" << serviceName << " 响应长度:" << response.size();qDebug() << "开始探测:" << targetIp << ":" << port << " 超时时间:" << timeout << "ms";qInfo() << "\n==================== UDP探测结果 ====================";

寒寒豆豆软件公司的博客 148

【AutoSAR】【EcuM】ECU状态管理

目录 一、EcuM架构位置 ​二、EcuM功能介绍 三、EcuM状态机 1.STARTUP阶段 2、UP状态 3、shutdown状态 4、休眠状态 5、OFF状态 一、EcuM架构位置 EcuM模块位于系统服务层,如下图红色方框里; 二、EcuM功能介绍 EcuM本身它管理着ECU在STARTUP, RUN,OFF,SLEEP,WAKEUP状态之间的相互切换。 责所有BSW的初始化以及去初始化 和ComM协作来管理网络状态,在需要时关闭ECU 管理所有的唤醒事件,并且在需要时

专注汽车软件开发、AutoSAR、车载以太网、SOA、EE架构。 3355

Java本地文件操作(二)文件夹的创建、删除、重命名

1 2 3 4 5 6 7 8 9 10 11 12 13 packagecom.yeqc.testDomo; importjava.io.File; publicclassHelloFolder{ publicstaticvoidmain(String[]args){ ...

weixin_33709590的博客 158

游戏客户端开发工程师笔试题

1、已知有一个关键字序列:(27,23,34,14,1,55, 20,19,85,83,10,68)散列存储在一个哈希表中,若散列函数为H(key)=key%7,并采用链地址法来解决冲突,则在等概率情况下查找成功的平均查找长度为(4、出现死锁时,除了可以采用资源剥夺的方法解决死锁问题外,还可以使用的方法是()是被限定只能在表的一端进行插入运算,在另一端进行删除运算的线性表.5、大端模式,是指数据的高字节保存在内存的(3、在二叉查找树中, 最好情况下复杂度为。)地址中,而数据的低字节保存在内存的(

博客 1875

Java IO流创建文件夹、删除文件夹、文件重命名、文件压缩等相关操作

【代码】Java IO流创建文件夹、删除文件夹、文件重命名、文件压缩等相关操作。

weixin_48469176的博客 555

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java怎么创建删除文件以及_Java创建、重命名、删除文件和文件夹

package my.file;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.io.Writer;public class TravelAllFile {public static void main(String[] args) {String p...

weixin_36213943的博客 166

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【java办公自动化(3)】-- 批量创建、复制、移动、删除、重命名文件及文件夹

【java办公自动化(3)】-- 批量创建、复制、移动、删除、重命名文件及文件夹 需求前言 简单的单文件复制粘贴谁都会,ctrl+c ctrl+v谁都知道。但是加个批量且秒完成,谁能做到,你说python能,但今天我们用java实现一下。 效果展示 代码展示 package com.yanhui.controller.manage.code; import com.yanhui.common....

528

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java文件夹重命名_Java创建、重命名、删除文件和文件夹(转)

importorg.apache.commons.io.FileUtils;import org.apache.commons.io.filefilter.*;importorg.apache.commons.logging.Log;importorg.apache.commons.logging.LogFactory;import java.io.*;/*** 文件工具箱**@authorlei...

weixin_42320036的博客 468

java13.语言进阶------本地文件操作---文件夹的创建、重命名、删除

一、创建示例1:import java.io.File;public class HelloFolder { public static void main(String[] args) { File folder = new File("my new folder");//如果参数改为my new folder/one/two/three则创建失败,只能在已存在文件夹下创建文

clpig0125的专栏 496

Java API在HDFS上实现文件的上传、下载到本地、创建文件夹、删除文件和重命名文件

前期准备: 一、前期准备 (1)Hadoop集群已配置完毕 (2)linux系统安装jdk (3)在linux系统中安装并破解IntelliJIDEA 二、通过JAVA API接口操纵HDFS 1.在IDEA中创建maven项目 2.设置配置文件 (1)修改pom.xml文件导入依赖如下,刷新,自动安装hdfs所需包 (2)在hdfs项目的src->main->resources路径下创建log4j2.xml日志文件,添加内容如下 3.在hd...

qq_46266006的博客 8146

使用java模拟文件管理系统,包含文件夹、文件的基本创建、删除、重命名、拷贝等操作

本系统一个基于java代码实现的模拟文件管理系统,包含文件夹、文件的基本创建、删除、重命名、拷贝等操作

java老哥优质源码 1851

Java创建、重命名、删除文件和文件夹(转)

Java的文件操作太基础,缺乏很多实用工具,比如对目录的操作,支持就非常的差了。如果你经常用Java操作文件或文件夹,你会觉得反复编写这些代码是令人沮丧的问题,而且要大量用到递归。 下面是的一个解决方案,借助Apache Commons IO工具包(commons-io-1.1.jar)来简单实现文件(夹)的复制、移动、删除、获取大小等操作。   import org.apache.co...

weixin_34343689的博客 145
上一篇: hibernate Isolation Level(事务隔离等级)
下一篇: 字符串工具箱
programloverjack
博客等级 码龄17年 5粉丝 252原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值