* use JDK7 Files.copy() if possible
This commit is contained in:
parent
5cb775fdac
commit
45594c4179
@ -46,13 +46,15 @@ public final class FileUtilities {
|
|||||||
// resolve destination
|
// resolve destination
|
||||||
destination = resolveDestination(source, destination);
|
destination = resolveDestination(source, destination);
|
||||||
|
|
||||||
if (source.isDirectory()) { // move folder
|
if (source.isDirectory()) {
|
||||||
moveFolderIO(source, destination);
|
// move folder
|
||||||
} else { // move file
|
org.apache.commons.io.FileUtils.moveDirectory(source, destination);
|
||||||
|
} else {
|
||||||
|
// move file
|
||||||
try {
|
try {
|
||||||
moveFileNIO2(source, destination);
|
java.nio.file.Files.move(source.toPath(), destination.toPath());
|
||||||
} catch (LinkageError e) {
|
} catch (LinkageError e) {
|
||||||
moveFileIO(source, destination);
|
org.apache.commons.io.FileUtils.moveFile(source, destination); // use "copy and delete" as fallback if standard rename fails
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,31 +62,20 @@ public final class FileUtilities {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void moveFileNIO2(File source, File destination) throws IOException {
|
|
||||||
java.nio.file.Files.move(source.toPath(), destination.toPath());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private static void moveFileIO(File source, File destination) throws IOException {
|
|
||||||
// use "copy and delete" as fallback if standard rename fails
|
|
||||||
org.apache.commons.io.FileUtils.moveFile(source, destination);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private static void moveFolderIO(File source, File destination) throws IOException {
|
|
||||||
// use "copy and delete" as fallback if standard move/rename fails
|
|
||||||
org.apache.commons.io.FileUtils.moveDirectory(source, destination);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static File copyAs(File source, File destination) throws IOException {
|
public static File copyAs(File source, File destination) throws IOException {
|
||||||
// resolve destination
|
// resolve destination
|
||||||
destination = resolveDestination(source, destination);
|
destination = resolveDestination(source, destination);
|
||||||
|
|
||||||
if (source.isDirectory()) { // copy folder
|
if (source.isDirectory()) {
|
||||||
|
// copy folder
|
||||||
org.apache.commons.io.FileUtils.copyDirectory(source, destination);
|
org.apache.commons.io.FileUtils.copyDirectory(source, destination);
|
||||||
} else { // copy file
|
} else {
|
||||||
org.apache.commons.io.FileUtils.copyFile(source, destination);
|
// copy file
|
||||||
|
try {
|
||||||
|
java.nio.file.Files.copy(source.toPath(), destination.toPath());
|
||||||
|
} catch (LinkageError e) {
|
||||||
|
org.apache.commons.io.FileUtils.copyFile(source, destination);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return destination;
|
return destination;
|
||||||
|
Loading…
Reference in New Issue
Block a user