|
@@ -22,10 +22,8 @@ namespace Emby.Server.Implementations.Archiving
|
|
|
/// <param name="overwriteExistingFiles">if set to <c>true</c> [overwrite existing files].</param>
|
|
|
public void ExtractAll(string sourceFile, string targetPath, bool overwriteExistingFiles)
|
|
|
{
|
|
|
- using (var fileStream = File.OpenRead(sourceFile))
|
|
|
- {
|
|
|
- ExtractAll(fileStream, targetPath, overwriteExistingFiles);
|
|
|
- }
|
|
|
+ using var fileStream = File.OpenRead(sourceFile);
|
|
|
+ ExtractAll(fileStream, targetPath, overwriteExistingFiles);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -36,67 +34,61 @@ namespace Emby.Server.Implementations.Archiving
|
|
|
/// <param name="overwriteExistingFiles">if set to <c>true</c> [overwrite existing files].</param>
|
|
|
public void ExtractAll(Stream source, string targetPath, bool overwriteExistingFiles)
|
|
|
{
|
|
|
- using (var reader = ReaderFactory.Open(source))
|
|
|
+ using var reader = ReaderFactory.Open(source);
|
|
|
+ var options = new ExtractionOptions
|
|
|
{
|
|
|
- var options = new ExtractionOptions();
|
|
|
- options.ExtractFullPath = true;
|
|
|
-
|
|
|
- if (overwriteExistingFiles)
|
|
|
- {
|
|
|
- options.Overwrite = true;
|
|
|
- }
|
|
|
+ ExtractFullPath = true
|
|
|
+ };
|
|
|
|
|
|
- reader.WriteAllToDirectory(targetPath, options);
|
|
|
+ if (overwriteExistingFiles)
|
|
|
+ {
|
|
|
+ options.Overwrite = true;
|
|
|
}
|
|
|
+
|
|
|
+ reader.WriteAllToDirectory(targetPath, options);
|
|
|
}
|
|
|
|
|
|
+ /// <inheritdoc />
|
|
|
public void ExtractAllFromZip(Stream source, string targetPath, bool overwriteExistingFiles)
|
|
|
{
|
|
|
- using (var reader = ZipReader.Open(source))
|
|
|
+ using var reader = ZipReader.Open(source);
|
|
|
+ var options = new ExtractionOptions
|
|
|
{
|
|
|
- var options = new ExtractionOptions();
|
|
|
- options.ExtractFullPath = true;
|
|
|
+ ExtractFullPath = true,
|
|
|
+ Overwrite = overwriteExistingFiles
|
|
|
+ };
|
|
|
|
|
|
- if (overwriteExistingFiles)
|
|
|
- {
|
|
|
- options.Overwrite = true;
|
|
|
- }
|
|
|
-
|
|
|
- reader.WriteAllToDirectory(targetPath, options);
|
|
|
- }
|
|
|
+ reader.WriteAllToDirectory(targetPath, options);
|
|
|
}
|
|
|
|
|
|
+ /// <inheritdoc />
|
|
|
public void ExtractAllFromGz(Stream source, string targetPath, bool overwriteExistingFiles)
|
|
|
{
|
|
|
- using (var reader = GZipReader.Open(source))
|
|
|
+ using var reader = GZipReader.Open(source);
|
|
|
+ var options = new ExtractionOptions
|
|
|
{
|
|
|
- var options = new ExtractionOptions();
|
|
|
- options.ExtractFullPath = true;
|
|
|
+ ExtractFullPath = true,
|
|
|
+ Overwrite = overwriteExistingFiles
|
|
|
+ };
|
|
|
|
|
|
- if (overwriteExistingFiles)
|
|
|
- {
|
|
|
- options.Overwrite = true;
|
|
|
- }
|
|
|
-
|
|
|
- reader.WriteAllToDirectory(targetPath, options);
|
|
|
- }
|
|
|
+ reader.WriteAllToDirectory(targetPath, options);
|
|
|
}
|
|
|
|
|
|
+ /// <inheritdoc />
|
|
|
public void ExtractFirstFileFromGz(Stream source, string targetPath, string defaultFileName)
|
|
|
{
|
|
|
- using (var reader = GZipReader.Open(source))
|
|
|
+ using var reader = GZipReader.Open(source);
|
|
|
+ if (reader.MoveToNextEntry())
|
|
|
{
|
|
|
- if (reader.MoveToNextEntry())
|
|
|
+ var entry = reader.Entry;
|
|
|
+
|
|
|
+ var filename = entry.Key;
|
|
|
+ if (string.IsNullOrWhiteSpace(filename))
|
|
|
{
|
|
|
- var entry = reader.Entry;
|
|
|
-
|
|
|
- var filename = entry.Key;
|
|
|
- if (string.IsNullOrWhiteSpace(filename))
|
|
|
- {
|
|
|
- filename = defaultFileName;
|
|
|
- }
|
|
|
- reader.WriteEntryToFile(Path.Combine(targetPath, filename));
|
|
|
+ filename = defaultFileName;
|
|
|
}
|
|
|
+
|
|
|
+ reader.WriteEntryToFile(Path.Combine(targetPath, filename));
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -108,10 +100,8 @@ namespace Emby.Server.Implementations.Archiving
|
|
|
/// <param name="overwriteExistingFiles">if set to <c>true</c> [overwrite existing files].</param>
|
|
|
public void ExtractAllFrom7z(string sourceFile, string targetPath, bool overwriteExistingFiles)
|
|
|
{
|
|
|
- using (var fileStream = File.OpenRead(sourceFile))
|
|
|
- {
|
|
|
- ExtractAllFrom7z(fileStream, targetPath, overwriteExistingFiles);
|
|
|
- }
|
|
|
+ using var fileStream = File.OpenRead(sourceFile);
|
|
|
+ ExtractAllFrom7z(fileStream, targetPath, overwriteExistingFiles);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -122,21 +112,15 @@ namespace Emby.Server.Implementations.Archiving
|
|
|
/// <param name="overwriteExistingFiles">if set to <c>true</c> [overwrite existing files].</param>
|
|
|
public void ExtractAllFrom7z(Stream source, string targetPath, bool overwriteExistingFiles)
|
|
|
{
|
|
|
- using (var archive = SevenZipArchive.Open(source))
|
|
|
+ using var archive = SevenZipArchive.Open(source);
|
|
|
+ using var reader = archive.ExtractAllEntries();
|
|
|
+ var options = new ExtractionOptions
|
|
|
{
|
|
|
- using (var reader = archive.ExtractAllEntries())
|
|
|
- {
|
|
|
- var options = new ExtractionOptions();
|
|
|
- options.ExtractFullPath = true;
|
|
|
-
|
|
|
- if (overwriteExistingFiles)
|
|
|
- {
|
|
|
- options.Overwrite = true;
|
|
|
- }
|
|
|
+ ExtractFullPath = true,
|
|
|
+ Overwrite = overwriteExistingFiles
|
|
|
+ };
|
|
|
|
|
|
- reader.WriteAllToDirectory(targetPath, options);
|
|
|
- }
|
|
|
- }
|
|
|
+ reader.WriteAllToDirectory(targetPath, options);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -147,10 +131,8 @@ namespace Emby.Server.Implementations.Archiving
|
|
|
/// <param name="overwriteExistingFiles">if set to <c>true</c> [overwrite existing files].</param>
|
|
|
public void ExtractAllFromTar(string sourceFile, string targetPath, bool overwriteExistingFiles)
|
|
|
{
|
|
|
- using (var fileStream = File.OpenRead(sourceFile))
|
|
|
- {
|
|
|
- ExtractAllFromTar(fileStream, targetPath, overwriteExistingFiles);
|
|
|
- }
|
|
|
+ using var fileStream = File.OpenRead(sourceFile);
|
|
|
+ ExtractAllFromTar(fileStream, targetPath, overwriteExistingFiles);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -161,21 +143,15 @@ namespace Emby.Server.Implementations.Archiving
|
|
|
/// <param name="overwriteExistingFiles">if set to <c>true</c> [overwrite existing files].</param>
|
|
|
public void ExtractAllFromTar(Stream source, string targetPath, bool overwriteExistingFiles)
|
|
|
{
|
|
|
- using (var archive = TarArchive.Open(source))
|
|
|
+ using var archive = TarArchive.Open(source);
|
|
|
+ using var reader = archive.ExtractAllEntries();
|
|
|
+ var options = new ExtractionOptions
|
|
|
{
|
|
|
- using (var reader = archive.ExtractAllEntries())
|
|
|
- {
|
|
|
- var options = new ExtractionOptions();
|
|
|
- options.ExtractFullPath = true;
|
|
|
+ ExtractFullPath = true,
|
|
|
+ Overwrite = overwriteExistingFiles
|
|
|
+ };
|
|
|
|
|
|
- if (overwriteExistingFiles)
|
|
|
- {
|
|
|
- options.Overwrite = true;
|
|
|
- }
|
|
|
-
|
|
|
- reader.WriteAllToDirectory(targetPath, options);
|
|
|
- }
|
|
|
- }
|
|
|
+ reader.WriteAllToDirectory(targetPath, options);
|
|
|
}
|
|
|
}
|
|
|
}
|