コード例 #1
0
        /// <summary> The clean snapshot directory. </summary>
        private static void CleanSnapshotDirectory()
        {
            if (!SnapshotDirectory.Exists)
            {
                return;
            }

            foreach (var file in SnapshotDirectory.GetFiles())
            {
                file.Delete();
            }

            SnapshotDirectory.Delete();
        }
コード例 #2
0
        public static bool Pack(string dirName, string fileName, Guid id)
        {
            try
            {
                var dict = new Dictionary <Guid, SnapshotDirectory>();

                if (!File.Exists(fileName))
                {
                    using (var fs = File.Create(fileName))
                    {
                        using (var gz = new GZipStream(fs, CompressionMode.Compress))
                        {
                            var bf = new BinaryFormatter();
                            dict[id] = new SnapshotDirectory(id, dirName);
                            bf.Serialize(gz, dict);
                        }
                    }
                }
                else
                {
                    var bf = new BinaryFormatter();

                    using (var fs = File.OpenRead(fileName))
                    {
                        using (var gz = new GZipStream(fs, CompressionMode.Decompress))
                        {
                            dict = (Dictionary <Guid, SnapshotDirectory>)bf.Deserialize(gz);
                        }
                    }

                    dict[id] = new SnapshotDirectory(id, dirName);

                    using (var fs = File.Open(fileName, FileMode.Truncate, FileAccess.Write))
                    {
                        using (var gz = new GZipStream(fs, CompressionMode.Compress))
                        {
                            bf.Serialize(gz, dict);
                        }
                    }
                }

                return(true);
            }
            catch
            {
                return(false);
            }
        }
コード例 #3
0
ファイル: DirectoryPacker.cs プロジェクト: A-n-d-r-e-y/VISLAB
        public static bool Pack(string dirName, string fileName, Guid id)
        {
            try
            {
                var dict = new Dictionary<Guid, SnapshotDirectory>();

                if (!File.Exists(fileName))
                {
                    using (var fs = File.Create(fileName))
                    {
                        using (var gz = new GZipStream(fs, CompressionMode.Compress))
                        {
                            var bf = new BinaryFormatter();
                            dict[id] = new SnapshotDirectory(id, dirName);
                            bf.Serialize(gz, dict);
                        }
                    }
                }
                else
                {
                    var bf = new BinaryFormatter();

                    using (var fs = File.OpenRead(fileName))
                    {
                        using (var gz = new GZipStream(fs, CompressionMode.Decompress))
                        {
                            dict = (Dictionary<Guid, SnapshotDirectory>)bf.Deserialize(gz);
                        }
                    }

                    dict[id] = new SnapshotDirectory(id, dirName);

                    using (var fs = File.Open(fileName, FileMode.Truncate, FileAccess.Write))
                    {
                        using (var gz = new GZipStream(fs, CompressionMode.Compress))
                        {
                            bf.Serialize(gz, dict);
                        }
                    }
                }

                return true;
            }
            catch
            {
                return false;
            }
        }