黑马程序员技术交流社区
标题:
拷贝问题
[打印本页]
作者:
李涛涛
时间:
2012-3-1 11:36
标题:
拷贝问题
如果 我想将一个文件夹下面所有内容拷贝到另一个盘符上,java 编程的思路是什么?
作者:
田啸
时间:
2012-3-1 12:46
这里就需要用到递归的思想
java删除和拷贝文件递归实现方法:程序自己调用自己
实现文件的删除和拷贝,代码如下:
package com.viita;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Dptest {
//删除制定文件夹的所有文件及根文件夹
public void deleteFile(String path) {
// TODO Auto-generated method stub
File f = new File(path);
if(f.isDirectory())
{
File[] file = f.listFiles();
for (File file2 : file) {
this.deleteFile(file2.toString());
file2.delete();
}
}else
{
f.delete();
}
f.delete();
} //拷贝整个文件夹的方法
public void copyFiles(String path1, String path2) throws Exception {
File file = new File(path1);
if(file.isDirectory())
{
File f = new File(path2);
if(!f.exists()) f.mkdir();
File[] files = file.listFiles();
for (File file2 : files) {
//System.out.println(file2.toString()+"-----"+path2+"/"+file2.getName());
copyFiles(file2.toString(),path2+"/"+file2.getName());
}
}else
{
copy(path1,path2);
}
}
//拷贝单个文件的方法
public void copy(String path1,String path2) throws IOException {
// TODO Auto-generated method stub
DataInputStream in = new DataInputStream(
new BufferedInputStream(
new FileInputStream(path1)));
byte[] date = new byte[in.available()];
in.read(date);
DataOutputStream out = new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream(path2)));
out.write(date);
in.close();
out.close();
}
public static void main(String[] args) throws Exception {
Dptest dp = new Dptest();
dp.deleteFile("c:/wmpub");
// dp.copyFiles("c:/新建文件夹", "c:/xiao");
}
}
作者:
dangfei
时间:
2012-3-1 13:22
我说一下我的思路,实现代码相比楼主可搜集不少,楼上功能实现就很不错。
功能可理解为,把一文件夹下所有内容考到另一位置,不必在意是否换盘符,在哪都是一个位置,不会影响到代码。
首先当然是判断目标位置是否存在,若存在则开始复制,若不存在则创建路径。
然后创建一函数getsSubcatalog(Stirng path),可遍历给定目录下所有文件,并判断所的文件是目录或文件,若是目录则把本目录作为参数传递给getsSubcatalog(Stirng path)(设计文件目录读取一般都要用到递归),若是文件则复制。说起来简单,可能实现起来会遇到不少麻烦。
作者:
欧阳博
时间:
2012-3-1 15:39
递归
思路就是如上所说,便利文件夹下所以目录,如果还是文件夹就又传给自己,反复........到底了,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2