1

我使用 FileSystem 创建了一个 .zip 文件夹(压缩文件夹),它存在于 JDK 1.7 及更高版本中的 Java.nio 包中。

        URI zipUri = new URI("jar:" + fileUri.getScheme(), fileUri.getPath(), null);
        FileSystem zipfs = FileSystems.newFileSystem(zipUri, env);

现在,我想将压缩文件夹从一个目录移动到另一个目录,但我找不到任何方法来定位压缩文件夹,因为它是一个文件系统并且没有移动它的方法。

Files.move() 仅适用于文件或目录,但不适用于从 FileSystem 创建的压缩文件夹。

谁能指出我正确的方向吗?

4

1 回答 1

0

如何将文件移动到Java中的另一个目录

Java.io.File 不包含任何现成的移动文件方法,但您可以使用以下两种替代方法来解决:

File.renameTo()。复制到新文件并删除原始文件。在下面的两个示例中,您将文件“C:\carpeta1\archivo.zip”从一个目录移动到另一个具有相同文件名“C:\carpeta2\archivo2.zip”的目录。

package com.softMolina.zip;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class MoveZipExample
{
    public static void main(String[] args)
    {

    InputStream inStream = null;
    OutputStream outStream = null;

        try{

            File carpetaA =new File("C:\\carpeta1\\archivo.txt");
            File carpetaB =new File("C:\\carpeta2\\archivo.txt");

            inStream = new FileInputStream(carpetaA);
            outStream = new FileOutputStream(carpetaB);

            byte[] buffer = new byte[1024];

            int length;
            //copy the file content in bytes
            while ((length = inStream.read(buffer)) > 0){

                outStream.write(buffer, 0, length);

            }

            inStream.close();
            outStream.close();

            //delete the original file
            afile.delete();

            System.out.println(".ZIP is copied successful!");

        }catch(IOException e){
            e.printStackTrace();
        }
    }
}
于 2016-12-12T23:37:35.527 回答