在java中对文件与文件目录的操作主要集中在java.io包,但是对于文件夹的操作还没有可用的直接处理方法。
对文件的操作最好的办法就是递归,很多人一听递归就放弃了,其实递归是很简单的,我先从递归设计的基本思想入手:
递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的
出口,这样原问题就有递推得解。
关键要抓住的是:
(1)递归出口
(2)地推逐步向出口逼近
只要把基本思想和关键的抓住,递归运算会和我们写Hello World一样的简单。
文件夹删除操作:
//originalFile源文件夹
public static void referDeleteFile(File originalFile) {
File filelist[] = originalFile.listFiles(); //获得文件夹的集合操作
for (File file : filelist) { //遍历
if (file.isDirectory()) { //判断是否是目录
referDeleteFile(file); //递归
} else {
file.delete(); //当不是目录时删除文件
}
}
originalFile.delete(); // 删除当前目录
}
文件夹拷贝操作:
//originalDir 源路径
//aimDir 目标路径
public static void referCopyFile(String originalDir, String aimDir) {
File originalFile = new File(originalDir); //实例化源文件
File filelist[] = originalFile.listFiles();//获得文件集合
for (File file : filelist) { //遍历
if (file.isDirectory()) {//判断是否是文件夹
new File(aimDir + File.separator +
file.getName()).mkdirs();//在目标路径上创建目录
referCopyFile(originalDir + File.separator + file.getName(),//递归
aimDir + File.separator + file.getName());
} else {
if (file.isFile()) { //判断文件是否真实存在
BufferedInputStream bis = null;
FileInputStream in = null;
BufferedOutputStream bos = null;
FileOutputStream out = null;
try {
in = new FileInputStream(file);
bis = new BufferedInputStream(in);
out = new FileOutputStream(new File(aimDir
+ File.separator + file.getName()));
bos = new BufferedOutputStream(out);
byte[] b = new byte[1024 * 10];
int len;
while ((len = bis.read(b)) != -1) {
bos.write(b, 0, len);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
bos.flush();
bos.close();
out.close();
bis.close();
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} else {
System.out.println("目标文件不存在");
}
}
}
}
上面的文件夹拷贝根目录并没有拷贝过去,有需要的朋友可以先创建一下根目录。
分享到:
相关推荐
综上所述,Java文件夹的拷贝涉及了文件系统的操作、文件和目录的遍历、文件的读写与复制等多个知识点。`copyFile.java`源码文件为我们提供了一个基础的实现,通过理解和扩展这个代码,我们可以根据实际需求构建更...
Java语言中,文件夹的拷贝和删除是非常重要的操作。本文将详细介绍Java拷贝文件夹和删除文件夹的代码实例,包括文件夹的拷贝和删除整个文件夹的实现方法。 一、文件夹的拷贝 在Java中,拷贝文件夹需要使用File类和...
在Java编程语言中,"文件夹拷贝"是一项常见的任务,尤其在系统集成、数据迁移或者备份场景下显得尤为重要。本篇文章将详细讲解如何在Java中实现文件夹及其内部所有内容的拷贝。 首先,我们需要了解Java中处理文件和...
在Java编程中,文件夹复制是一项常见的操作,特别是在系统备份、数据迁移或者程序部署等场景。本篇将详细讲解如何实现文件夹的复制,并在复制完成后删除原文件夹。我们将基于给定的`FileCopy.java`文件来探讨相关...
本文将深入探讨使用Java管理HDFS文件和文件夹的关键知识点,特别是基于Hadoop 2.4版本。 首先,理解HDFS的基础概念至关重要。HDFS是一种分布式文件系统,设计用于跨大量廉价硬件节点存储和处理大数据。它遵循主从...
此文件支持对文件及文件夹结构的多种操作,其中包括: 读取文本文件内容 遍历指定路径下指定后缀的所有文件 新建目录 多级目录创建 新建文件 有编码方式的文件创建 删除文件 删除文件夹 删除指定文件夹下所有文件 ...
在Java编程中,文件批量操作是一项常见的任务,包括文件的批量拷贝和重命名。这个"文件批量拷贝、重命名工具类 for java.zip"压缩包包含两个关键的Java源代码文件:Copy_File.java和RenameFile.java,它们分别用于...
2.指定一个路径,将其下面(含子文件夹中)的以".txt"结尾的文件移动到指定的另一个路径下;
3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。 4、实现指定文件的加密和解密。 5、实现指定文件和文件夹的压缩。 6、实现压缩文件的解压。 7、文件管理器具有图形界面。 建议使用...
3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。 4、实现指定文件的加密和解密。 5、实现指定文件和文件夹的压缩。 6、实现压缩文件的解压。 7、文件管理器具有图形界面。
3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。 4、实现指定文件的加密和解密。 5、实现指定文件和文件夹的压缩。 6、实现压缩文件的解压。 7、文件管理器具有图形界面。
文件上传工具类,上传文件,上传导入文件到path文件夹下,判断图片大小是否...将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下 ,拷贝指定文件到另一文件中,保存图片
想要拷贝一份项目代码到家里,但是由于是从公司svn服务器上checkout下来的,其中有很多.svn文件。所以写了个小工具删除.svn文件夹。可以缩小整个工程大小。 package delete.file; import java.io.File; public...
3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。 4、实现指定文件的加密和解密。 5、实现多个文件的压缩和解压缩。 6、实现一个大文件的分割和合并。 7、实现把项目导出为可...
Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...
在IT行业中,文件操作是日常开发中的基础任务之一,而“简单的文件拷贝 simpleFileCopy”这个项目就涉及到了如何在Java中实现文件和文件夹的复制功能。在这个过程中,我们通常会涉及到文件的比较、读取、写入等多个...
为了高效地与HDFS交互,Java API 提供了一套丰富的工具和类库,使得开发者能够方便地进行文件的读写、上传、下载、遍历、查找、拷贝以及管理HDFS上的文件和目录。以下将详细讲解如何使用Java API 操作HDFS。 ### 一...
3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。 4、实现指定文件的加密和解密。 5、实现指定文件和文件夹的压缩。 6、实现压缩文件的解压。 7、文件管理器具有图形界面。