java寻找包含多级目录的A文件夹下的文件,用B文件夹下的文件去覆盖相同文件名的文件。

写了半天,也没写出来。总是复制不到应该复制到的目录底下

//已符合你的要求了
//多给点财富吧
import java.util.*;
import java.io.*;

public class P
{
public static void main(String[] args)
{
final int bufLen=1024*8;
String A,B;
int readed=-1;
DataInputStream dis=null;
DataOutputStream dos=null;
Scanner sc=new Scanner(System.in);
ArrayList<File> fsA=new ArrayList<File>(),fsB=new ArrayList<File>();
byte[] buf=new byte[bufLen];

System.out.println("请输入A文件夹的路径和B文件夹的路径,每行一个:");
A=sc.next();
B=sc.next();
P.getFiles(new File(A),fsA);
P.getFiles(new File(B),fsB);
for(File fB : fsB)
{
for(File fA : fsA)
{
if(fA.getName().equals(fB.getName()))
{
try
{
fA.delete();
dis=new DataInputStream(new FileInputStream(fB));
dos=new DataOutputStream(new FileOutputStream(fA));
do
{
readed=dis.read(buf);
if(-1!=readed)
{
dos.write(buf,0,readed);
}
}while(-1!=readed);
dis.close();
dos.close();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
}
}
}

//将目录d及其子孙目录中的所有文件添加到al中
private static void getFiles(File d,ArrayList<File> al)
{
File[] ds;

al.addAll(Arrays.asList(d.listFiles()));
ds=d.listFiles(P.DFilter);
for(File e : ds)
{
P.getFiles(e,al);
}
}
private static FileFilter DFilter=new FileFilter()
{
public boolean accept(File pathname)
{
return pathname.isDirectory();
}
};
}追问

请问一下,那没有的文件需要再A里创建应该加什么语句呢

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答