[英]creating a java.nio.file.FileSystem from a .zip file if it's encrypted?
[英]extract file from zip file using nio filesystem
這是我的 function 從現有的 zip 中提取文件(路徑)。 問題是 FIC 是 null,因為由於提供者不同,因此不支持該操作。(基於文檔)
我正在使用 jdk 8。
public File method(){
URI uri = new File(zipFilePath).toURI();//URI.create("jar:file:"+zipFilePath);
Map<String, String> env = new HashMap<>();
env.put("create", "true");
File fic = null;
FileSystem zipfs = null;
try {
zipfs = FileSystems.newFileSystem(URI.create("jar:"+uri),env);
for(Path path : zipfs.getRootDirectories()){
System.out.println(path);
/*Files.walk(path).forEach(p -> {
if(p.getFileName()!=null && p.getFileName().toString().contains(fileToExtract)){
System.out.println(p.getFileName());
}
}
);*/
Path pathFound = Files.walk(path).filter(p -> p.getFileName()!=null && p.getFileName().toString().contains(fileToExtract)).findAny().orElse(null);
if(pathFound!=null){
fic = pathFound.toFile();
break;
}
}
}
catch(Exception e){
log.error(e.getMessage());
}finally{
// close the file system
FileIOUtil.closeNioFileSystem(zipfs);
}
return fic;
}
看看這個鏈接。 該技術是使用輸出流而不是轉換為文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.