失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java复制文件夹_java实现拷贝一个文件夹 里面存在目录和文件 使用文件创建和文件流...

java复制文件夹_java实现拷贝一个文件夹 里面存在目录和文件 使用文件创建和文件流...

时间:2023-10-25 09:25:31

相关推荐

java复制文件夹_java实现拷贝一个文件夹 里面存在目录和文件 使用文件创建和文件流...

内容我都在注释里说明了,有什么不懂的可以问我.主要是为了回顾下文件的创建和文件流的读写,所以写了这个拷贝的代码,还可以添加很多功能,像拷贝哪个文件到哪都是可以改个,可以用scanner输入,还有就是可以再加个delete()那么程序就变成剪切功能了.

package io;

import java.io.File;

import java.io.RandomAccessFile;

/**

* java实现拷贝一个文件夹,里面存在目录和文件,使用文件创建和文件流

* 读到file文件复制里面的内容,读到目录,复制目录,并查看里面是否还有文件

* @author 温先生

*

*/

public class FileCopy {

public static void main(String[] args) throws Exception {

FileCopy fileCopy = new FileCopy();

String fixed = "a/b/c/d";//fixed定义为固定,就是你要粘贴到这里

String moveto = "a/c";//moveto定义为移动的文件

String[] movetos = moveto.split("/");//切割的目的是得到c文件,去掉前面的文件路径,一定要去掉,不然后面会因为路径错误找不到文件

String moveto_cut= movetos[movetos.length-1];

File file1 = new File(moveto);//创建file1对象,固定file1为拷贝的文件,同下

if (file1.isFile()) {//判断是否为文件

//创建file1对象,固定file2为拷贝形成的文件或目录,同下

File file2 = new File(fixed+"/"+moveto_cut);//这里用切割后的,很容易理解为什么

file2.createNewFile();//创建一个文件

//读取原文件里面的数据,存到新文件里

RandomAccessFile raf = new RandomAccessFile(file1, "rw");

byte[] bs = new byte[(int) file1.length()];

raf.read(bs);

RandomAccessFile raf2 = new RandomAccessFile(file2, "rw");

raf2.write(bs);

raf.close();

raf2.close();

}

if (file1.isDirectory()) {//判断是否为目录

File file2 = new File(fixed+"/"+moveto_cut);

file2.mkdir();

fileCopy.copy(fixed+"/"+moveto_cut, moveto);

}

}

public void copy(String fixed,String moveto) throws Exception {

System.out.println(fixed);//打桩查看数据

System.out.println(moveto);//打桩查看数据

File file = new File(moveto);//这里定义为file,因为要获取file里面所有的文件目录和文件

File[] files = file.listFiles();//获取file里面所有的文件目录和文件

for (int i=0;i

if (files[i].isFile()) {

File file2 = new File(fixed+"/"+files[i].getName());//要新建文件的目录+文件名

System.out.println("创建了文件:"+files[i].getName());

File file1 = new File(moveto+"/"+files[i].getName());//原拷贝文件的目录+文件名

file2.createNewFile();//创建一个文件

//读取原文件里面的数据,存到新文件里

RandomAccessFile raf = new RandomAccessFile(file1, "rw");

byte[] bs = new byte[(int) file1.length()];

raf.read(bs);

RandomAccessFile raf2 = new RandomAccessFile(file2, "rw");

raf2.write(bs);

raf.close();

raf2.close();

}

if (files[i].isDirectory()) {

moveto=moveto+"/"+files[i].getName();//文件的目录

File file2 = new File(moveto);//要新建文件的目录

System.out.println("创建了目录:"+files[i].getName());

file2.mkdir();//创建一个目录

copy(fixed+"/"+files[i].getName(), moveto);//递归

}

}

}

}

如果觉得《java复制文件夹_java实现拷贝一个文件夹 里面存在目录和文件 使用文件创建和文件流...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。