[英]Error while trying to copy the file from one folder to a temp folder in JAVA [Access Denied]?
[英]Trying to zip a folder using java program but Error - Access Denied
//program to zip a file
// Exception in thread "main" java.io.FileNotFoundException: C:\zipde (Access is denied)
//at java.io.FileOutputStream.open0(Native Method)
//at java.io.FileOutputStream.open(FileOutputStream.java:270)
//at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
//at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
//at ZipUtility.pack(ZipUtility.java:26)
//at ZipUtility.main(ZipUtility.java:19)
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipUtility {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Path p1 = Paths.get("C:\\zipdemo");
Path p2 = Paths.get("C:\\zipde");
pack(p1, p2);
}
public static void pack(final Path folder, final Path zipFilePath) throws IOException {
try (
FileOutputStream fos = new FileOutputStream(zipFilePath.toFile());
ZipOutputStream zos = new ZipOutputStream(fos)
) {
Files.walkFileTree(folder, new SimpleFileVisitor<Path>() {
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
zos.putNextEntry(new ZipEntry(folder.relativize(file).toString()));
Files.copy(file, zos);
zos.closeEntry();
return FileVisitResult.CONTINUE;
}
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
zos.putNextEntry(new ZipEntry(folder.relativize(dir).toString() + "/"));
zos.closeEntry();
return FileVisitResult.CONTINUE;
}
});
}
}
}
当您尝试访问目录而不是文件时,此异常通常发生在流中。 FileOutputStream的参数应为“文件/路径”。 有关更多详细信息,请参见http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.