黑马程序员技术交流社区
标题:
复制文件夹(改扩展名)
[打印本页]
作者:
郑飞
时间:
2014-10-20 10:31
标题:
复制文件夹(改扩展名)
import java.io.*;
public class CopyDir {
/**
* 将"E:\\MyEclipse 10\\io\\src\\files";下的"copyDir文件夹"复制到"E:\\java\\workspace";
* 把.java文件改成.txt文件
*/
private static final String P = File.separator;//路径分隔符
public static void main(String[] args)throws IOException
{
String dest = "E:\\java\\workspace";
String src = "E:\\MyEclipse 10\\io\\src\\files";
String name = "copyDir";
copyDir(dest,src,name,new MyFilenameFilter());
}
//拷贝单个文件
public static void copy(String dest,String src)throws IOException
{
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(src));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(dest));
int ch = -1;
while((ch = bis.read())!=-1)
{
bos.write((byte)ch);
}
bis.close();
bos.close();
}
//判断arr数组里是否包含t元素;用于区分.java文件和其他文件
public static <T> boolean isContains(T t , T[] arr)
{
for(int i = 0;i<arr.length;i++)
{
if(t.equals(arr[i]))
return true;
}
return false;
}
//建立多级文件夹
public static void mkdirs(String dest)
{
new File(dest).mkdirs();
}
//复制文件夹
public static void copyDir(String dest,String src,String name,MyFilenameFilter mft)throws IOException
{
//判断源文件夹是否存在;
File df = new File(dest+P+name);
if(!df.exists())
mkdirs(dest+P+name);//不存在则建立该文件夹
File sf = new File(src+P+name);
File[] files = sf.listFiles();//该文件夹下所有文件组成的数组
File[] javafiles = sf.listFiles(mft);//该文件夹下所有.java文件组成的数组
for(int i = 0 ; i<files.length;i++)
{
File file = files[i];
String oldname = file.getName();
String newname = null;
if(file.isDirectory())//如果是文件夹,先建立,然后进入递归;
{
mkdirs(dest+P+name+P+oldname);
copyDir(dest+P+name,src+P+name,oldname,mft);
}
else if(file.isFile())//是文件的情况
{
if(isContains(file,javafiles))//该文件是.java文件
newname = oldname.split(".java")[0]+".txt";//该成新文件名
else
newname = oldname;//不是.java文件,文件名不变
copy(dest+P+name+P+newname,src+P+name+P+oldname);//最后复制该文件;
}
}
}
}
//用于过滤.java文件
class MyFilenameFilter implements FilenameFilter
{
public boolean accept(File dir,String filename)
{
return filename.endsWith(".java");
}
}
复制代码
作者:
郑飞
时间:
2014-10-20 11:58
卢仪敏 发表于 2014-10-20 10:45
看你好久了,还没进黑马吗
快了 事情耽误了点时间
最近有打算面试 不过超龄 压力好大:L
作者:
郑飞
时间:
2014-10-20 12:00
郑飞 发表于 2014-10-20 11:58
快了 事情耽误了点时间
最近有打算面试 不过超龄 压力好大
你进了没 哪期的
我是希望能在51期之前进黑马
作者:
郑飞
时间:
2014-10-20 16:44
卢仪敏 发表于 2014-10-20 10:45
看你好久了,还没进黑马吗
嗯 谢啦:handshake
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2