複製目錄文件函數
public static boolean copyFolder(File srcFile, File destFile) {
if (!srcFile.isDirectory()) {
return false;
}
if (!destFile.exists() && !destFile.mkdirs()) {
return false;
}
boolean result = true;
File[] list = srcFile.listFiles();
if (list == null) {
return result;
}
for (File f:list) {
if (f.isDirectory()) {
result &= copyFolder (f,new File(destFile,f.getName()));
} else {
result &= copyFile(f,new File(destFile,f.getName()));
}
}
return result;
}
public static boolean copyFile(File srcFile, File destFile) {
boolean result = false;
try {
InputStream in = new FileInputStream(srcFile);
try {
result = copyToFile(in, destFile);
} finally {
in.close();
}
} catch (IOException e) {
result = false;
}
return result;
}
public static boolean copyToFile(InputStream inputStream, File destFile) {
try {
if (destFile.exists()) {
destFile.delete();
}
FileOutputStream out = new FileOutputStream(destFile);
try {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) >= 0) {
out.write(buffer, 0, bytesRead);
}
} finally {
out.flush();
try {
out.getFD().sync();
} catch (IOException e) {
}
out.close();
}
return true;
} catch (IOException e) {
return false;
}
}