Added support for LZip.

This commit is contained in:
2017-06-06 22:50:45 +01:00
parent 01461176f3
commit 379d29ca02
8 changed files with 93 additions and 12 deletions

View File

@@ -186,6 +186,9 @@ namespace osrepodbmgr.Core
case AlgoEnum.LZMA:
extension = ".lzma";
break;
case AlgoEnum.LZip:
extension = ".lz";
break;
}
#if DEBUG
@@ -220,6 +223,9 @@ namespace osrepodbmgr.Core
outFs.Write(((LzmaStream)zStream).Properties, 0, ((LzmaStream)zStream).Properties.Length);
outFs.Write(BitConverter.GetBytes(inFs.Length), 0, 8);
break;
case AlgoEnum.LZip:
zStream = new LZipStream(outFs, SharpCompress.Compressors.CompressionMode.Compress);
break;
}
byte[] buffer = new byte[bufferSize];
@@ -745,6 +751,17 @@ namespace osrepodbmgr.Core
file.Sha256 + ".lzma");
algorithm = AlgoEnum.LZMA;
}
else if(File.Exists(Path.Combine(Settings.Current.RepositoryPath, file.Sha256[0].ToString(),
file.Sha256[1].ToString(), file.Sha256[2].ToString(),
file.Sha256[3].ToString(), file.Sha256[4].ToString(),
file.Sha256 + ".lz")))
{
repoPath = Path.Combine(Settings.Current.RepositoryPath, file.Sha256[0].ToString(),
file.Sha256[1].ToString(), file.Sha256[2].ToString(),
file.Sha256[3].ToString(), file.Sha256[4].ToString(),
file.Sha256 + ".lz");
algorithm = AlgoEnum.LZip;
}
else
throw new ArgumentException(string.Format("Cannot find file with hash {0} in the repository", file.Sha256));
@@ -764,6 +781,9 @@ namespace osrepodbmgr.Core
inFs.Seek(8, SeekOrigin.Current);
zStream = new LzmaStream(properties, inFs, inFs.Length - 13, file.Length);
break;
case AlgoEnum.LZip:
zStream = new LZipStream(inFs, SharpCompress.Compressors.CompressionMode.Decompress);
break;
}
return zStream;