32
32
import ru .olegcherednik .zip4jvm .model .block .BlockModel ;
33
33
import ru .olegcherednik .zip4jvm .model .settings .ZipInfoSettings ;
34
34
import ru .olegcherednik .zip4jvm .model .src .SrcZip ;
35
+ import ru .olegcherednik .zip4jvm .utils .quitely .Quietly ;
35
36
36
37
import lombok .RequiredArgsConstructor ;
37
38
38
- import java .io .IOException ;
39
39
import java .io .PrintStream ;
40
40
import java .nio .file .Files ;
41
41
import java .nio .file .Path ;
@@ -52,7 +52,7 @@ public final class InfoEngine implements ZipFile.Info {
52
52
53
53
@ Override
54
54
@ SuppressWarnings ("NonShortCircuitBooleanExpression" )
55
- public void printTextInfo (PrintStream out ) throws IOException {
55
+ public void printTextInfo (PrintStream out ) {
56
56
BlockModel blockModel = createModel ();
57
57
58
58
boolean emptyLine = new EndCentralDirectoryDecompose (blockModel , settings ).printTextInfo (out , false );
@@ -62,15 +62,17 @@ public void printTextInfo(PrintStream out) throws IOException {
62
62
}
63
63
64
64
@ Override
65
- public void decompose (Path dir ) throws IOException {
66
- Files .createDirectories (dir );
65
+ public void decompose (Path dir ) {
66
+ Quietly .doRuntime (() -> {
67
+ Files .createDirectories (dir );
67
68
68
- BlockModel blockModel = createModel ();
69
+ BlockModel blockModel = createModel ();
69
70
70
- new EndCentralDirectoryDecompose (blockModel , settings ).decompose (dir );
71
- new Zip64Decompose (blockModel , settings ).decompose (dir );
72
- getCentralDirectoryDecompose (blockModel ).decompose (dir );
73
- new ZipEntriesDecompose (blockModel , settings ).decompose (dir );
71
+ new EndCentralDirectoryDecompose (blockModel , settings ).decompose (dir );
72
+ new Zip64Decompose (blockModel , settings ).decompose (dir );
73
+ getCentralDirectoryDecompose (blockModel ).decompose (dir );
74
+ new ZipEntriesDecompose (blockModel , settings ).decompose (dir );
75
+ });
74
76
}
75
77
76
78
private Decompose getCentralDirectoryDecompose (BlockModel blockModel ) {
@@ -80,7 +82,7 @@ private Decompose getCentralDirectoryDecompose(BlockModel blockModel) {
80
82
}
81
83
82
84
@ Override
83
- public CentralDirectory .FileHeader getFileHeader (String entryName ) throws IOException {
85
+ public CentralDirectory .FileHeader getFileHeader (String entryName ) {
84
86
ZipModelReader reader = new ZipModelReader (srcZip ,
85
87
settings .getCustomizeCharset (),
86
88
settings .getPasswordProvider (),
@@ -91,11 +93,13 @@ public CentralDirectory.FileHeader getFileHeader(String entryName) throws IOExce
91
93
.findFirst ().orElseThrow (() -> new EntryNotFoundException (entryName ));
92
94
}
93
95
94
- public BlockModel createModel () throws IOException {
95
- BlockZipModelReader reader = new BlockZipModelReader (srcZip ,
96
- settings .getCustomizeCharset (),
97
- settings .getPasswordProvider ());
98
- return settings .isReadEntries () ? reader .readWithEntries () : reader .read ();
96
+ public BlockModel createModel () {
97
+ return Quietly .doRuntime (() -> {
98
+ BlockZipModelReader reader = new BlockZipModelReader (srcZip ,
99
+ settings .getCustomizeCharset (),
100
+ settings .getPasswordProvider ());
101
+ return settings .isReadEntries () ? reader .readWithEntries () : reader .read ();
102
+ });
99
103
}
100
104
101
105
}
0 commit comments