java从一个目录拷贝文件或整个文件夹到另一个目录下

**
* 复制单个文件
* @param oldPath String 原文件路径 如:c:/fqf.txt
* @param newPath String 复制后路径 如:f:/fqf.txt
* @return boolean
*/
public void copyFile(String oldPath, String newPath) {
try {
int bytesum = 0;
int byteread = 0;
File oldfile = new File(oldPath);
if (oldfile.exists()) { //文件存在时
InputStream inStream = new FileInputStream(oldPath); //读入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1444];
int length;
while ( (byteread = inStream.read(buffer)) != -1) {
bytesum += byteread; //字节数 文件大小
System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
inStream.close();
}
}
catch (Exception e) {
System.out.println("复制单个文件操作出错");
e.printStackTrace(); 

} 

} 

/**
* 复制整个文件夹内容
* @param oldPath String 原文件路径 如:c:/fqf
* @param newPath String 复制后路径 如:f:/fqf/ff
* @return boolean
*/
public void copyFolder(String oldPath, String newPath) { 

try {
(new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹
File a=new File(oldPath);
String[] file=a.list();
File temp=null;
for (int i = 0; i < file.length; i++) {
if(oldPath.endsWith(File.separator)){
temp=new File(oldPath+file[i]);
}
else{
temp=new File(oldPath+File.separator+file[i]);
} 

if(temp.isFile()){
FileInputStream input = new FileInputStream(temp);
FileOutputStream output = new FileOutputStream(newPath + "/" +
(temp.getName()).toString());
byte[] b = new byte[1024 * 5];
int len;
while ( (len = input.read(b)) != -1) {
output.write(b, 0, len);
}
output.flush();
output.close();
input.close();
}
if(temp.isDirectory()){//如果是子文件夹
copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);
}
}
}
catch (Exception e) {
System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace(); 

} 

}

原文地址:https://www.cnblogs.com/momo1210/p/9483259.html

时间: 2024-11-07 05:49:38

java从一个目录拷贝文件或整个文件夹到另一个目录下的相关文章

Java NIO.2 —— 文件或目录拷贝操作

拷贝整个文件树是可以递归每个目录和文件调用 Files.copy()方法.在使用的时候有一下注意事项. 在往目录拷贝文件之前,首先要保证目录已经存在.拷贝源目录(不论是否为空)都会生成目标目录.整个任务一定在preVisitDirectory()方法中执行. visitFile()方式用来拷贝每个文件最佳的方法. 在你拷贝目录或文件时,你需要决定是否要使用REPLACE_EXISTING 和COPY_ATTRIBUTES 选项. 如果你想保存要拷贝的目录的属性,你需要在postVisitDire

Java中递归的优缺点,Java写一个递归遍历目录下面的所有文件包括子文件夹里边的文件。

题目: 遍历出aaa文件夹下的文件 首先分析思路: 1.首先判断这个文件夹是否为文件,通过isFile()函数可以判断是否为文件. 2.然后通过isDirectory判断是否为目录. 3.如果是目录就使用递归遍历目录 代码如下: 1 import java.io.File; 2 3 public class ZuoYe { 4 public static void main(String[] args) { 5 //创建file对象 6 File f=new File("d://新建文件夹&qu

Java 目录拷贝

目录拷贝 import java.io.*; /** * 目录拷贝 */ public class CopyAll { public static void main(String[] args) { File srcFile = new File("D:\\StudySource\\Java\\powernode\\文本笔记"); File destFile = new File("F:\\Java 目录拷贝\\"); copyAll(srcFile, destF

ubuntu 用shell脚本实现将当前目录下所有目录中的某一类文件拷贝到同一目录下

当前目录下有一些文件和目录,其中每个目录里都有若干.txt文件, 现在要求在当前目录创建一个新目录all,且将那些目录所有.txt文件 都拷贝到目录all.在ubuntu12.04的shell脚本实现如下: #!/bin/sh # 提示信息 echo "start:" # 定义变量 dst=all pst=.txt # 复制文件到目标文件夹 if [ -d ${dst} ] then echo "${dst} existed" else echo "mkd

Java 在指定目录建立指定文件名的文件 并输入内容

1 package runoob; 2 import java.io.File; 3 import java.io.FileInputStream; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 import java.io.InputStreamReader; 7 import java.io.OutputStreamWriter; 8 9 public class FileDemo { 10 11 pub

SaltStack 模块学习之拷贝master服务器上文件和目录到minion服务器

一. cp.get_file实现从master端复制文件到minion服务器的文件中cp.get_file 1. 修改/etc/salt/master ,指定server 工作的根目录   file-roots:       - base:              /srv/salt  (默认路径,可以指定)2 . 创建目录     mkdir /srv/salt 3. 拷贝需要复制的文件到工作目录   cp -ra souce_file /srv/salt4. 执行cp.get_file 命

Eclipse中的一个小插件easyExplorer--用于打开文件所在目录

最近格式化了硬盘,里面的诸多有价值的插件都没了,开发时需要打开java文件所在的目录,每次都很麻烦,实在无法忍受,就又重新下载了一个小插件,用以很方便的打开文件所在目录: easyExplorer 仅有7kb 一:官方下载地址: http://sourceforge.net/projects/easystruts/ 由于天朝网络问题,等个大概十来秒的时间出现下图: 二:配置方式: 直接将下载后的文件:org.sf.easyexplore_1.0.4.jar复制到eclipse下的plugins下

[Java 8] 列举目录下的所有文件和监视文件变化

列举目录中的所有文件 首先给出代码: Files.list(Paths.get(".")).forEach(System.out::println); Files.list方法得到的是一个Stream类型的对象,它代表了目标路径下所有的文件.如果只想获取目标路径下的所有目录文件: Files.list(Paths.get(".")) .filter(Files::isDirectory) .forEach(System.out::println); 在以前的Java

Java web 项目读取src或者tomcat下class目录下的xml文件或者properties文件

//生成一个文件对象: File file = new File(getClass().getClassLoader().getResource("test.xml").getPath()); //直接得到一个输入流: InputStream in = getClass().getClassLoader().getResourceAsStream("test.xml"); //在当前线程获取--这个方法不大稳定 //String path = Thread.curr

java 使用递归获取指定文件路径目录,删除指定的文件后缀(可扩展,根据具体需要的删除的后缀进行配置)~~

在工作开发过程中,每次用SVN提交代码全选择的时候,发现会产生很多不需要的文件后缀垃圾文件,感觉挺烦人的,一个一个删太麻烦了,如果产生多种后缀文件时,那删起来多费劲,是吧?想想,就写了一段程序通过递归进行处理,虽然网上有很多这样的代码,但是我感觉都有问题,网上的代码很多都需要拿过来执行一下才知道有没有问题,如果是多层目录结构的时候,会把你的相同文件名称也干掉,而我写的这个即使是需要删除的文件后缀名称跟文件名一样都不会删掉.每次提交之前我都执行一下再提交,这样就不会有哪些不需要的后缀文件了.这个还