private string UnzipIfNeeded(string originalUrl, string file) { var ext = Path.GetExtension(originalUrl.Split('?')[0]); if (string.Equals(ext, ".gz", StringComparison.OrdinalIgnoreCase)) { using (var stream = _fileSystem.OpenRead(file)) { var tempFolder = Path.Combine(_config.ApplicationPaths.TempDirectory, Guid.NewGuid().ToString()); _fileSystem.CreateDirectory(tempFolder); try { _zipClient.ExtractAllFromGz(stream, tempFolder, true); } catch { // If the extraction fails just return the original file, it could be a gz return(file); } return(_fileSystem.GetFiles(tempFolder, true) .Where(i => string.Equals(i.Extension, ".xml", StringComparison.OrdinalIgnoreCase)) .Select(i => i.FullName) .FirstOrDefault()); } } return(file); }
private string ExtractGz(string file) { using (var stream = File.OpenRead(file)) { string tempFolder = Path.Combine(_config.ApplicationPaths.TempDirectory, Guid.NewGuid().ToString()); Directory.CreateDirectory(tempFolder); _zipClient.ExtractAllFromGz(stream, tempFolder, true); return(tempFolder); } }
private string ExtractGz(string file) { using (var stream = File.OpenRead(file)) { string tempFolder = GetTempFolderPath(stream); Directory.CreateDirectory(tempFolder); _zipClient.ExtractAllFromGz(stream, tempFolder, true); return(tempFolder); } }