2014-09-26 148 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