在Java中复制文件到可能不存在的目录

3
我正在尝试使用以下代码将文件复制到可能不存在的路径:
    public static void copyFile( File from, File to ) throws IOException {

    if ( !to.exists() ) { to.createNewFile(); }

    try (
        FileChannel in = new FileInputStream( from ).getChannel();
        FileChannel out = new FileOutputStream( to ).getChannel() ) {

        out.transferFrom( in, 0, in.size() );
    }

显然不正确,因为如果目录不存在,就不会复制文件。需要创建在路径中不存在的文件夹。

例如,程序应该将文件复制到:

C:\test\test1\test2\test3\copiedFile.exe

其中C:\中的test目录存在,但test2和test3丢失,因此程序应该创建它们。


所以你必须创建目录。 - 5gon12eder
1个回答

6
您可以使用以下代码片段创建所有路径,例如:
File file = new File("C:\\test\\test1\\test2\\test3\\copiedFile.exe");
file.getParentFile().mkdirs();
FileWriter writer = new FileWriter(file);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接