2016-12-12 61 views
0

我已經使用FileSystem創建了一個.zip文件夾(壓縮文件夾),該文件夾出現在JDK 1.7及更高版本中的Java.nio包中。如何移動使用Java.NIO文件系統創建的.zip文件夾

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

現在,我要壓縮的文件夾從一個目錄移動到另一個,但我找不到任何方式來定位壓縮文件夾,因爲它是一個文件系統,不存在目前移動它的方法。

Files.move()僅適用於文件或目錄,但不適用於從FileSystem創建的壓縮文件夾。

任何人都可以指向我正確的方向嗎?

回答

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(); 
     } 
    } 
} 
+0

謝謝,但我沒有找到樣板代碼。另外,我的壓縮文件夾是FileSystem類型,無法轉換爲File,因此您發佈的代碼將無法工作。 – Jammy

相關問題