Java 在不同文件系统之间复制目录内容的干净方法?

Java 在不同文件系统之间复制目录内容的干净方法?,java,path,filesystems,jvm-languages,Java,Path,Filesystems,Jvm Languages,我想将文件从一个java.nio.file.FileSystem复制到另一个文件系统。例如,从默认文件系统到com.google.common.jimfs.jimfs 下面我提供了一个可以在Java中使用的解决方案,如下所示: // Java code import com.google.common.jimfs.Jimfs; import org.junit.Test; import java.io.IOException; import java.nio.file.Files; impor

我想将文件从一个
java.nio.file.FileSystem
复制到另一个
文件系统。例如,从默认文件系统到
com.google.common.jimfs.jimfs

下面我提供了一个可以在Java中使用的解决方案,如下所示:

// Java code
import com.google.common.jimfs.Jimfs;
import org.junit.Test;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;

public class UsageExamples
{
  @Test
  public void UsageExample() throws IOException
  {
    Path dir  = Jimfs.newFileSystem().getPath("dirWithSomeContents");
    Path dest = Jimfs.newFileSystem().getPath("destDir");
    Files.createDirectory(dir);
    Files.createDirectory(dest);

    // Act
    new FileSystemsOperations().copyDirContentsRecursivelyToDirInDifferentFileSystem(dir, dest);
  }
}
我的Groovy解决方案(完整代码):


我已经为这个用例编写了一些实用程序类。该库是开源的,您可能会发现它很有用:

CopyFileVisitor.copy(srcPath, targetPath);  
马文:

<dependency>
    <groupId>org.softsmithy.lib</groupId>
    <artifactId>softsmithy-lib-core</artifactId>
    <version>0.5</version>
</dependency>

org.softsmithy.lib

Javadoc:

源代码:

<dependency>
    <groupId>org.softsmithy.lib</groupId>
    <artifactId>softsmithy-lib-core</artifactId>
    <version>0.5</version>
</dependency>