From 6228e2cc2d4237bb03e457862a32c6c144b5bb1c Mon Sep 17 00:00:00 2001 From: Sergey Simonchik Date: Fri, 10 Feb 2012 08:26:55 +0400 Subject: [PATCH] copyDirContent(fromDir, toDir) method added --- .../intellij/openapi/util/io/FileUtil.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/platform/util/src/com/intellij/openapi/util/io/FileUtil.java b/platform/util/src/com/intellij/openapi/util/io/FileUtil.java index beca1196d72e..2140094c72dc 100644 --- a/platform/util/src/com/intellij/openapi/util/io/FileUtil.java +++ b/platform/util/src/com/intellij/openapi/util/io/FileUtil.java @@ -21,6 +21,8 @@ import com.intellij.Patches; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.util.ArrayUtil; +import com.intellij.util.ObjectUtils; import com.intellij.util.Processor; import com.intellij.util.SystemProperties; import com.intellij.util.containers.ContainerUtil; @@ -721,6 +723,26 @@ public class FileUtil { copyDir(fromDir, toDir, true); } + /** + * Copies content of {@code fromDir} to {@code toDir}. + * It's equivalent to "cp -r fromDir/* toDir" unix command. + * + * @param fromDir source directory + * @param toDir destination directory + * @throws IOException in case of any IO troubles + */ + public static void copyDirContent(@NotNull File fromDir, @NotNull File toDir) throws IOException { + File[] children = ObjectUtils.notNull(fromDir.listFiles(), ArrayUtil.EMPTY_FILE_ARRAY); + for (File child : children) { + File target = new File(toDir, child.getName()); + if (child.isFile()) { + copy(child, target); + } else { + copyDir(child, target, true); + } + } + } + public static void copyDir(@NotNull File fromDir, @NotNull File toDir, boolean copySystemFiles) throws IOException { copyDir(fromDir, toDir, copySystemFiles ? null : new FileFilter() { public boolean accept(File file) {