Esempio n. 1
0
        protected override void OnExecute(string Entity)
        {
            var Code = false;

            var OldSizeText = ConfigHelper.GetValue($"{Entity}_Size");

            if (string.IsNullOrWhiteSpace(OldSizeText))
            {
                Code = true;
            }

            if (!long.TryParse(OldSizeText, out long OldSize))
            {
                Code = true;
            }

            var NewSize = PathHelper.GetFileSize(Entity);

            if (OldSize != NewSize)
            {
                ConfigHelper.SetValue($"{Entity}_Size", NewSize.ToString());
                Code = true;
            }

            var OldMd5 = ConfigHelper.GetValue($"{Entity}_MD5");

            if (string.IsNullOrWhiteSpace(OldMd5))
            {
                Code = true;
            }

            var NewMd5 = PathHelper.FileMD5(Entity);

            if (OldMd5 != NewMd5)
            {
                ConfigHelper.SetValue($"{Entity}_MD5", NewMd5);
                Code = true;
            }

            OnExecuted?.Invoke(Entity, Code);
        }
Esempio n. 2
0
        private void StartCompressed(string SourceRootPath, string DestRootPath, List <string> FileList, Action Callback)
        {
            Log("Compressed Begin");

            var Entites = GenerateCompressItemEntities(SourceRootPath, DestRootPath, FileList);

            SetValueToProgressBar(ProgressBarCompress, 0, Entites.Count, 0);
            TotalFileCount_ = Entites.Count;

            var Job = new CompressJobSystem(Entites.ToArray(), Environment.ProcessorCount);

            Job.OnCompleted += () =>
            {
                Log("Compressed End");
                Callback?.Invoke();
            };
            Job.OnExecuted += (Entity, Code) =>
            {
                var FileOriginSize = PathHelper.GetFileSize(Entity.InputFilePath);
                TotalFileSize_ += FileOriginSize;

                if (Code)
                {
                    var FileCompressedSize = PathHelper.GetFileSize(Entity.OutputFilePath);
                    CompressedFileCount_++;
                    CompressedFileSize_ += FileCompressedSize;

                    Log($"{Entity.InputFilePath} Compressed : {FileOriginSize / 1024}Kb -> {FileCompressedSize / 1024}Kb!");
                }
                else
                {
                    Log($"{Entity.InputFilePath} Compress Error!");
                }

                AddValueToProgressBar(ProgressBarCompress, 1);
                SetLabel(LabelInfo, $"Handle Percent : {((double)CompressedFileCount_ / (double)TotalFileCount_ * 100.0d):00.00}% | Compressed Info : {CompressedFileSize_}/{TotalFileSize_} - {((double)CompressedFileSize_ / (double)TotalFileSize_ * 100.0d):00.00}%");
            };
            Job.Execute();
        }