2017-11-29 03:42:21 +01:00
|
|
|
|
using System.Drawing.Imaging;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using NLog;
|
|
|
|
|
using Resources.Models;
|
|
|
|
|
|
|
|
|
|
namespace Resources
|
|
|
|
|
{
|
|
|
|
|
public class Extractor
|
|
|
|
|
{
|
|
|
|
|
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
|
|
|
|
|
|
|
|
|
private readonly FileDescriptor _descriptor;
|
|
|
|
|
|
|
|
|
|
public Extractor(FileDescriptor descriptor)
|
|
|
|
|
{
|
|
|
|
|
_descriptor = descriptor;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Extract(string outputDirectory)
|
|
|
|
|
{
|
2019-05-04 10:44:19 +02:00
|
|
|
|
for (var i = 0; i < _descriptor.Resources.Count; i++)
|
2017-11-29 03:42:21 +01:00
|
|
|
|
{
|
2019-05-04 10:44:19 +02:00
|
|
|
|
var resource = _descriptor.Resources[i];
|
2017-12-10 11:30:33 +01:00
|
|
|
|
var numericPart = i.ToString().PadLeft(ImageLoader.NumericPartLength, '0');
|
2019-05-04 10:44:19 +02:00
|
|
|
|
|
|
|
|
|
var fileName = Path.Combine(outputDirectory, numericPart + resource.Extension);
|
2017-11-29 03:42:21 +01:00
|
|
|
|
Logger.Debug("Extracting {0}...", fileName);
|
2019-05-04 10:44:19 +02:00
|
|
|
|
|
|
|
|
|
using (var fileStream = File.OpenWrite(fileName))
|
|
|
|
|
resource.ExportTo(fileStream);
|
2017-11-29 03:42:21 +01:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|