您的位置:首页 > 其它

复制文件夹及其子文件夹的内容(还是自己写的容易理解)

2013-06-17 11:16 337 查看
思路:

首先,获得源文件夹路径和目的文件夹路径,

然后,将路径封装成对象,对源文件夹获取文件列表, 使用listFile()方法

进行循环遍历,判断如果是文件则进行拷贝,如果不是文件而是文件夹那么进行递归调用

package IOTest;

import java.io.*;
public class CopyMkdir
{

/**
* @param args
*/
public static void main(String[] args) throws IOException
{
copyMkdir("d:/java","d:/jad");
System.out.println("拷贝文件夹成功");

}

public static void copyMkdir(String oldPath,String newPath) throws IOException
{
//将源文件夹径封装成File对象
File sourcePath = new File(oldPath);
//获得源文件夹的列表
File[] files = sourcePath.listFiles();
//将目的文件夹封装成File对象
File targetPath = new File(newPath);
//如果目标文件夹不存在则创建
if(!targetPath.exists())
{
//因为可能创建多级文件夹 所以用mkdirs而不用mkdir
targetPath.mkdirs();
}

//进行遍历源文件夹
for(File f : files)
{
//如果是文件
if(f.isFile())
{
//调用拷贝文件方法,这里的参数很重要 是变化的(注意getPath 和getName)
copyFile(f.getPath(),newPath+"\\"+f.getName());
}
else
{
//如果不是文件而是文件夹的话,递归调用copyMkdir,参数是变化的注意
copyMkdir(f.getPath(),newPath+"\\"+f.getName());

}

}

}

//这里写的例子为了好理解 就抛出异常了   主要是为了理解
public static void copyFile(String st1, String st2) throws IOException
{
//读取流  因为我的全是文本文件 用这个比较好
BufferedReader bfr =
new BufferedReader(new FileReader(st1));

//写入流
BufferedWriter bfw =
new BufferedWriter(new FileWriter(st2));

String line = null;
// 循环读取写入
while((line = bfr.readLine())!=null)
{
bfw.write(line);
bfw.flush();
}

bfr.close();
bfw.close();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐