Java创建、重命名、删除文件和文件夹
来源:互联网 发布:枯枝败叶 知乎 编辑:程序博客网 时间:2024/05/17 09:40
Java的文件操作太基础,缺乏很多实用工具,比如对目录的操作,支持就非常的差了。如果你经常用Java操作文件或文件夹,你会觉得反复编写这些代码是令人沮丧的问题,而且要大量用到递归。
下面是的一个解决方案,借助Apache Commons IO工具包(commons-io-2.3.jar)来简单实现文件(夹)的复制、移动、删除、获取大小等操作。
Apache Commons IO工具包下载路径:
http://commons.apache.org/io/download_io.cgi
- 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;
- }
- }
0 0
- Java创建、重命名、删除文件和文件夹
- Java创建、重命名、删除文件和文件夹
- Java创建、重命名、删除文件和文件夹
- Java创建、重命名、删除文件和文件夹
- Java创建、重命名、删除文件和文件夹
- java创建和删除文件夹、文件
- java 文件,文件夹的创建和删除
- java 文件夹的创建 删去 和 重命名
- 文件夹的创建、重命名、删除
- Java文件的创建,删除,重命名
- 批处理实现畸形文件、文件夹创建、访问、重命名、删除
- java创建文件夹,文件;删除文件夹,文件
- java创建文件夹,文件;删除文件夹,文件
- java创建文件夹,文件;删除文件夹,文件
- JAVA 创建文件和文件夹,删除文件和文件夹,复制文件和文件夹,移动文件和文件夹的实用工具类
- 【NCRE】回收考生答题文件--文件夹的重命名和删除
- 创建、删除文件及文件夹,文件及文件夹的复制、剪切、重命名。
- 文件的创建、删除、重命名
- SQL Server LocalDB 在 ASP.NET中的应用
- JNI编程入门(-)
- 发现jQuery UI中Tooltip的一个小Bug
- uchome模板缓存文件存放位置
- net start mysql服务名无效
- Java创建、重命名、删除文件和文件夹
- 职场感悟
- [SC-06]QThread线程在为知笔记中的使用
- Linux默认允许单进程打开文件数量限制测试与修改方法
- 免费图标:30个食品相关的图标
- UVA 11248 - Frequency Hopping
- 9_C# 实现VMS客户端——控件_TextBoxX
- web.xml url-pattern
- 人生要小心处理的50件事