public static FileInfo Decompress(this FileInfo inputFile, FileInfo outputFile, int lockWaitMs = 60000, ExistingFileHandling onExisting = ExistingFileHandling.PreserveExisting, int bufferSize = 4096) { return(GZip(inputFile, outputFile, GZipType.Decompress, lockWaitMs, onExisting, bufferSize)); }
public void CanEnumerateDecompressFile_Test02_True(ExistingFileHandling handling) { /* Arrange */ var gotInput = m_Fixture.sutInputFileInfo02; var got = m_Fixture.sutOutputFileInfo02; /* Act */ output.WriteLine("File already exists:{0}", got.Exists); got = gotInput.Decompress(got, onExisting: handling); /* Assert */ output.WriteLine("File created:{0}", got?.FullName); Assert.True(got.Exists, $"{TestConstants.CANNOT_FIND_FILE_MSG} {got.FullName}"); Assert.True(got.Length == m_Fixture.sutControlOutputFileInfo02.Length); }
public static FileInfo GZip(this FileInfo inputFile, FileInfo outputFile, GZipType compressionMode, int lockWaitMs = 60000, ExistingFileHandling onExisting = ExistingFileHandling.PreserveExisting, int bufferSize = 4096) { VerifyFileParams(inputFile, outputFile); FileInfo m_OutputFileInfo = EnsureOutputDirectory(inputFile, outputFile); if (inputFile.FullName.Equals(m_OutputFileInfo.FullName, StringComparison.InvariantCultureIgnoreCase)) { throw new IOException($"{nameof(inputFile)} ({inputFile.FullName}) and {nameof(outputFile)} ({m_OutputFileInfo.FullName}) cannot be the same!"); } if (m_OutputFileInfo.Exists) { switch (onExisting) { case ExistingFileHandling.PreserveExisting: return(m_OutputFileInfo); case ExistingFileHandling.Overwrite: m_OutputFileInfo.Delete(); break; case ExistingFileHandling.ReplaceAndArchive: var m_arcFile = GetArchiveFullName(m_OutputFileInfo); if (!File.Exists(m_arcFile)) { File.Move(m_OutputFileInfo.FullName, m_arcFile); } else { m_OutputFileInfo.Delete(); /* may no longer be numerically possible needs validation */ } break; default: throw new IOException(IoConstants.FILE_EXISTS_ERROR_MSG); } } if (compressionMode == GZipType.Compress) { return(ExecuteCompress(inputFile, m_OutputFileInfo, bufferSize, lockWaitMs)); } return(ExecuteDecompress(inputFile, outputFile, bufferSize, lockWaitMs)); }
public void CanEnumerateGzipFile_Test01_True(ExistingFileHandling handling) { /* Arrange */ var sutFilePath = Path.Combine(Environment.CurrentDirectory, TestConstants.INPUT_FILE_01_PATH); var sutOutputFilePath = Path.Combine(Environment.CurrentDirectory, TestConstants.OUTPUT_FILE_01_PATH); var gotInput = new FileInfo(sutFilePath); var got = new FileInfo(sutOutputFilePath); /* Act */ output.WriteLine("File already exists:{0}", got.Exists); got = gotInput.Compress(got, 60000, handling); /* Assert */ output.WriteLine("File created:{0}", got?.FullName); Assert.True(got.Exists, $"{TestConstants.CANNOT_FIND_FILE_MSG} {got.FullName}"); }
private static void HandleCompressCommand(FileInfo input, FileInfo output, int lockms = 60000, ExistingFileHandling filehandling = ExistingFileHandling.PreserveExisting, int buffersize = 4096) { try { input.Compress(output, lockms, filehandling, buffersize); Console.WriteLine($"Compression Complete! {output.FullName}"); } catch (Exception ex) { Console.WriteLine(ex.Message); } }