public bool Extract(IFileHierarchyFile garFile) { Asserts.True(garFile.Exists, $"Could not extract GAR because it does not exist: {garFile.FullName}"); var directoryPath = StringUtil.UpTo(garFile.FullName, ".gar"); var directory = new FinDirectory(directoryPath); if (directory.Exists) { return(false); } var logger = Logging.Create <ZarExtractor>(); logger.LogInformation($"Extracting GAR {garFile.LocalPath}..."); Gar gar; { using var er = new EndianBinaryReader(garFile.Impl.OpenRead(), Endianness.LittleEndian); gar = new Gar(er); } foreach (var fileType in gar.FileTypes) { foreach (var file in fileType.Files) { var fileName = file.FileName; if (!fileName.EndsWith($".{fileType.TypeName}")) { fileName = $"{fileName}.{fileType.TypeName}"; } var filePath = Path.Join(directoryPath, fileName); Directory.CreateDirectory(Path.GetDirectoryName(filePath) !); File.WriteAllBytes(filePath, file.Bytes); } } garFile.Impl.Info.Delete(); return(true); }
public Bar(Gar g, Har h, Tar t) { Console.WriteLine("Bar ctor with gar, har and tar."); }
public Bar(Gar g) { Console.WriteLine("Bar ctor with Gar."); }
public Foo(Gar g, Har h) { }
public Foo(Gar g) { Console.WriteLine("The one with Gar"); }
public Foo(Bar b, Gar g) { Console.WriteLine("Bar and gar"); }