2014-09-26 147 views
1

我有一個在運行時創建的zip文件,我需要將其複製到另一個目錄,但是每當我運行我的代碼時,我都會得到一個DirectoryNotEmptyException。我需要指定一些額外的參數來複制到非空目錄嗎?如何用Java複製zip文件

這裏的佈局

Path sourceZip = new File(path).toPath(); 
String destinDir = new File(System.getProperty("user.dir")).getParent(); 
Path target = Paths.get(destinDir); 
try { 
     Files.copy(sourceZip, target, StandardCopyOption.REPLACE_EXISTING); 
} catch (IOException e) //DirectoryNotEmptyException occurs here 
{} 
+0

你需要做的迭代/遞歸IE:一次複製一個文件過來。查看Apache的FileUtils庫。 – proulxs 2014-09-26 18:26:52

+0

看到這個答案:http://stackoverflow.com/a/1946311/2514228作者建議複製zip文件更容易做爲讀/寫字節。 – 2014-09-26 18:28:31

+0

@proulxs好吧,那就是我所害怕的,我希望自從它被壓縮後,它會將它作爲一個「文件」而不是目錄來讀取,但唉 – sreya 2014-09-26 18:30:57

回答

1

目標需要包含的文件,將最終在那裏的完整路徑。

所以你說,如果你需要複製/home/dauser/faq.txt到/home/faq.txt

File file = new File(path); 
Path sourceZip = file.toPath(); 
StringBuilder sb = new StringBuilder(); 
sb.append(new File(System.getProperty("user.dir")).getParent()); 
sb.append("/"); 
sb.append(file.getName()); 
Path target = Paths.get(sb.toString()); 
try { 
    Files.copy(sourceZip, target, StandardCopyOption.REPLACE_EXISTING); 
} catch (IOException e) //DirectoryNotEmptyException occurs here 
{} 
+0

http://examples.javacodegeeks.com/core-java/io/file/4 -java-copy-file-in-java/ – bhowden 2014-09-26 18:35:46

+0

並在這裏 - > http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#copy(java。 nio.file.Path,%20java.nio.file.Path,%20java.nio.file.CopyOption ...) – bhowden 2014-09-26 18:37:08

+0

真棒謝謝 – sreya 2014-09-26 19:06:33