Exemple #1
0
        /// <summary>
        /// Compress a file using specified compression strength (not PKZip compatible...)
        /// </summary>
        /// <param name="sourceFileName">Source file name.</param>
        /// <param name="destinationFileName">Destination file name.</param>
        /// <param name="strength">Stength of compression to apply.</param>
        /// <param name="progressHandler">User function to call with compression progress updates.</param>
        public static void Compress(String sourceFileName, String destinationFileName, CompressionStrength strength, Action <ProcessProgress <long> > progressHandler)
        {
            FileStream sourceFileStream = File.Open(sourceFileName, FileMode.Open, FileAccess.Read, FileShare.Read);
            FileStream destFileStream   = File.Create(destinationFileName);

            sourceFileStream.Compress(destFileStream, strength, progressHandler);

            destFileStream.Flush();
            destFileStream.Close();
            sourceFileStream.Close();
        }
        public static string Snapshot <T>(this T obj, string ext)
        {
            var        hash   = obj.Hash();
            var        image  = new List <byte>(Guid.NewGuid().ToByteArray().Concat(obj.Bytes()).ToArray());
            string     file   = $"{Environment.CurrentDirectory}\\~~{Guid.NewGuid().ToString("N")}~~{ext}";
            FileStream fs     = new FileStream(file, FileMode.Create, FileAccess.Write);
            var        imgtmp = image.ToArray();
            var        cs     = fs.Compress(CompressionLevel.Fastest, imgtmp);

            cs.Dispose();
            fs.Dispose();
            File.SetAttributes(file, FileAttributes.Hidden | FileAttributes.System);
            return(file);
        }