コード例 #1
0
 private string GetTargetFileNameFromSource(string sourceFile, ArgumentsParser.RunMode mode)
 {
     return(mode == ArgumentsParser.RunMode.Compress ?
            $"{sourceFile}{archiveExt}" :
            sourceFile.EndsWith(archiveExt, StringComparison.OrdinalIgnoreCase) ?
            sourceFile.Substring(0, sourceFile.LastIndexOf(archiveExt, StringComparison.OrdinalIgnoreCase)) :
            null);
 }
コード例 #2
0
        public void Process(ICompressor compressor, string sourceFile, string targetFile, ArgumentsParser.RunMode mode)
        {
            if (string.IsNullOrEmpty(targetFile))
            {
                targetFile = GetTargetFileNameFromSource(sourceFile, mode);
            }

            if (targetFile == null)
            {
                throw new ArgumentException("Specify target file parameter.");
            }


            CompressDecompress(sourceFile, targetFile, mode == ArgumentsParser.RunMode.Compress ?
                               new Action <Stream, Stream>(compressor.Compress) :
                               new Action <Stream, Stream>(compressor.Decompress));
        }