/**
* 复制整个文件夹内容
*
* @param oldPath
* String 原文件路径 如:c:/fqf
* @param newPath
* String 复制后路径 如:f:/fqf/ff
* @return boolean
*/
public static void copyFolder(String oldPath, String newPath) {
try {
(new File(newPath)).mkdirs(); // 如果文件夹不存在 则建立新文件夹
File a = new File(oldPath);
String[] file = a.list();
File temp = null;
for (int i = 0; i < file.length; i++) {
if (oldPath.endsWith(File.separator)) {
temp = new File(oldPath + file[i]);
} else {
temp = new File(oldPath + File.separator + file[i]);
}
if (temp.isFile()) {
FileInputStream input = new FileInputStream(temp);
FileOutputStream output = new FileOutputStream(newPath
+ "/ " + (temp.getName()).toString());
byte[] b = new byte[1024 * 5];
int len;
while ((len = input.read(b)) != -1) {
output.write(b, 0, len);
}
output.flush();
output.close();
input.close();
}
if (temp.isDirectory()) {// 如果是子文件夹
copyFolder(oldPath + "/ " + file[i], newPath + "/ "
+ file[i]);
}
}
} catch (Exception e) {
System.out.println("复制整个文件夹内容操作出错 ");
e.printStackTrace();
}
}
网上找的,请问是不是把里面的"/"全部改成File.separator比较合适呢?
路径采用File.separator,拥有更高的系统兼容性。(在linux和win系统中‘/’无问题) /**
* 拷贝文件(夹)
*
* @param srcFile
* 源文件(夹)
* @param dstFile
* 目标文件(夹)
* @throws IOException
* IOException
*/
public static void copyFile(File srcFile, File dstFile)
throws IOException
{
// 文件夹则拷贝文件内的东西
if (srcFile.isDirectory())
{
dstFile.mkdirs();
for (File f : srcFile.listFiles())
{
copyFile(f, new File(dstFile.getAbsolutePath() + File.separator + f.getName()));
}
}
else
{
copyStream(srcFile, dstFile);
}
}
private static void copyStream(File srcFile, File dstFile)
throws IOException
{
FileInputStream in = null;
try
{
in = new FileInputStream(srcFile);
FileOutputStream out = null;
try
{
out = new FileOutputStream(dstFile);
byte[] buffer = new byte[BUFFER_SIZE];
int len = -1;
while ((len = in.read(buffer)) != -1)
{
out.write(buffer, 0, len);
out.flush();
}
}
finally
{
if (out != null)
{
out.close();
out = null;
}
}
}
finally
{
if (in != null)
{
in.close();
in = null;
}
}
}
private static final int BUFFER_SIZE = 4096; /**
* 拷贝文件(夹)
*
* @param srcPath
* 源文件(夹)路径
* @param dstPath
* 目标文件(夹)路径
* @throws IOException
* IOException
*/
public static void copyFile(String srcPath, String dstPath)
throws IOException
{
copyFile(new File(srcPath), new File(dstPath));
}