关于文件及文件夹操作的的一个问题。 我想写一个复制的方法,如果newPath 中有相同的文件及文件夹时,则以 复件*** 形式出现,但是我试验了很多方法,但是最后最好的情况是,虽然能够以 复件*** 这样的形式出现,但是文件夹中的所有文件也同样被替换成 复件*** ,而我希望只有最外层的文件夹名改成 复件*** 这样的形式,想的头都大了,还是想不出,无奈请问大家怎么写呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 package com.train.test;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;public class Test{ private static void file2file(File from, File to) throws IOException { InputStream in = null; OutputStream out = null; try { in = new FileInputStream(from); out = new FileOutputStream(to); byte[] buf = new byte[1024*4]; int n = 0; while (-1 != (n = in.read(buf, 0, buf.length))) { out.write(buf, 0, n); } } finally { if (null != in) { in.close(); } if (null != out) { out.close(); } } } private static void file2dir(File file, File dir) throws IOException { if (!dir.exists()) { dir.mkdirs(); } File to = null; if (exists(file, dir)) { to = new File(dir, "复件" + file.getName()); } else { to = new File(dir, file.getName()); } file2file(file, to); } private static void dir2dir(File from, File to) throws IOException { if (!to.exists()) { to.mkdirs(); } File[] files = from.listFiles(); if (null != files && 0 < files.length) { for (File file : files) { if (file.isFile()) { file2dir(file, to); } else { File todir = null; if (exists(file, to)) { todir = new File(to, "复件" + file.getName()); } else { todir = new File(to, file.getName()); } dir2dir(file, todir); } } } } private static boolean exists(File from, File to) { File[] files = to.listFiles(); if (null != files && 0 < files.length) { for (File file : files) { if (file.getName().equals(from.getName())) { return true; } } } return false; } public static void main(String[] args) throws IOException { dir2dir(new File("D:\\Test"), new File("C:\\Test")); }} 界面初始化控件获得焦点疑问 java程序优化,集思广益,工作中深有体会 想和我一样的初学者一起分享知识 大家一起提高! 图像分割用什么类? [求助] 关于JMF的问题 文件编码为utf8的编译问题? 大虾,帮帮我。问个JAVA应用程序占用内存的问题。 如何在JSP页面显示Excel中图表 有用IBM的WSBCC framework开发银行系统的吗?问题请教! 请问jb里面不支持自动换行显示吗? java笔试题 Java笔试和面试最喜欢问道的问题!
package com.train.test;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;public class Test
{
private static void file2file(File from, File to) throws IOException
{
InputStream in = null;
OutputStream out = null;
try
{
in = new FileInputStream(from);
out = new FileOutputStream(to);
byte[] buf = new byte[1024*4];
int n = 0;
while (-1 != (n = in.read(buf, 0, buf.length)))
{
out.write(buf, 0, n);
}
}
finally
{
if (null != in)
{
in.close();
}
if (null != out)
{
out.close();
}
}
}
private static void file2dir(File file, File dir) throws IOException
{
if (!dir.exists())
{
dir.mkdirs();
}
File to = null;
if (exists(file, dir))
{
to = new File(dir, "复件" + file.getName());
}
else
{
to = new File(dir, file.getName());
}
file2file(file, to);
}
private static void dir2dir(File from, File to) throws IOException
{
if (!to.exists())
{
to.mkdirs();
}
File[] files = from.listFiles();
if (null != files && 0 < files.length)
{
for (File file : files)
{
if (file.isFile())
{
file2dir(file, to);
}
else
{
File todir = null;
if (exists(file, to))
{
todir = new File(to, "复件" + file.getName());
}
else
{
todir = new File(to, file.getName());
}
dir2dir(file, todir);
}
}
}
}
private static boolean exists(File from, File to)
{
File[] files = to.listFiles();
if (null != files && 0 < files.length)
{
for (File file : files)
{
if (file.getName().equals(from.getName()))
{
return true;
}
}
}
return false;
}
public static void main(String[] args) throws IOException
{
dir2dir(new File("D:\\Test"), new File("C:\\Test"));
}
}