blob: 4ebbf09a92b6f8b9290e2bfaada3cce4402c2baf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
using System.IO.Compression;
using Mammoth.Couscous.java.io;
using Mammoth.Couscous.java.util;
namespace Mammoth.Couscous.org.zwobble.mammoth.@internal.archives {
internal class ZippedArchive : Archive {
private readonly ZipArchive _zipFile;
internal ZippedArchive(File file) {
_zipFile = ZipFile.OpenRead(file.Path);
}
internal ZippedArchive(System.IO.Stream stream) {
_zipFile = new ZipArchive(stream);
}
public Optional<InputStream> tryGetInputStream(string name) {
var entry = _zipFile.GetEntry(name);
if (entry == null) {
return Optional.empty<InputStream>();
} else {
return Optional.of(ToJava.StreamToInputStream(entry.Open()));
}
}
public void close() {
_zipFile.Dispose();
}
}
}
|