예제 #1
0
 internal void RemoveCheatF()
 {
     if (SelectedCheatFile != null)
     {
         OpDFiles.Trash(SelectedCheatFile.DestPath);
         LoadCheatCodes();
     }
 }
예제 #2
0
        internal void RemoveVideoF()
        {
            if (SelectedVideo == null)
            {
                return;
            }

            if (SelectedVideo.IsSelected)
            {
                DxMBox.ShowDial("You must select another before to delete it");
                return;
            }

            OpDFiles.Trash(SelectedVideo.DestPath);
            LoadVideos();
        }
예제 #3
0
        internal void RemoveMusicF()
        {
            if (SelectedMusic == null)
            {
                return;
            }

            if (SelectedMusic.IsSelected)
            {
                DxMBox.ShowDial("You must select another before to delete it");
                return;
            }

            OpDFiles.Trash(SelectedMusic.DestPath);
            LoadMusics();
        }
예제 #4
0
        internal void SimpleCopyManager(string fileSrc, ref E_Decision previousDec, string destFile)
        {
            if (CancelToken.IsCancellationRequested)
            {
                throw new OperationCanceledException("Operation stopped");
            }

            if (!destFile.Contains(_WFolder))
            {
                throw new Exception($"[CreateFolders] Erreur la chaine '{destFile}' ne contient pas '{_WFolder}'");
            }


            // Création des dossiers
            string destFolder = Path.GetDirectoryName(destFile);

            if (!Directory.Exists(destFolder))
            {
                Directory.CreateDirectory(destFolder);
            }

            //string destFile = Path.Combine(destFolder, Path.GetFileName(fileSrc));

            E_Decision?conflictDec = previousDec;

            bool overwrite = false;

            if (File.Exists(destFile))
            {
                HeTrace.Write($"[CopyHandler] Destination file exists... ", this);
                if (conflictDec == E_Decision.None)
                {
                    conflictDec = PackMe_IHM.Ask4_FileConflict(fileSrc, destFile, E_DxConfB.OverWrite | E_DxConfB.Pass | E_DxConfB.Trash);

                    // Mémorisation pour les futurs conflits
                    switch (conflictDec)
                    {
                    case E_Decision.PassAll:
                    case E_Decision.OverWriteAll:
                    case E_Decision.TrashAll:
                        previousDec = conflictDec == null ? E_Decision.None : (E_Decision)conflictDec;
                        break;
                    }
                }

                HeTrace.EndLine(conflictDec.ToString(), this);
                switch (conflictDec)
                {
                case E_Decision.Pass:
                case E_Decision.PassAll:
                    SetStatus(this, new StateArg($"Pass: {fileSrc}", CancelFlag));
                    return;

                case E_Decision.OverWrite:
                case E_Decision.OverWriteAll:
                    SetStatus(this, new StateArg($"OverWrite: {destFile}", CancelFlag));
                    overwrite = true;
                    break;

                case E_Decision.Trash:
                case E_Decision.TrashAll:
                    SetStatus(this, new StateArg($"Trash: {destFile}", CancelFlag));
                    OpDFiles.Trash(destFile);
                    break;
                }
            }

            // --- Copie
            SetStatus(this, new StateArg($"Copy {fileSrc}", CancelFlag));
            SetProgress(this, new ProgressArg(0, 1, CancelFlag));
            FilesFunc.Copy(fileSrc, destFile, overwrite);
            SetProgress(this, new ProgressArg(1, 1, CancelFlag));

            // --- Vérification des sommes
            this.SetStatus(this, new StateArg($"Copy verification", CancelFlag));
            //this.SetMaximum(this, 100);

            //bool? res = _ObjectFiles.VerifByHash_Sync(fileSrc, destFile, () => MD5.Create());
            //var res = _ObjectFiles.DeepVerif(fileSrc, destFile, () => MD5.Create());

            this.SetStatus(this, new StateArg($"Check verif: {res}", CancelFlag));
            //this.UpdateProgress?.Invoke(100);
        }
예제 #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="gamePath"></param>
        /// <param name="title">Titre du jeu</param>
        private void Compress_7ZipMode(string gamePath)
        {
            var archiveLink = Path.Combine(_SystemPath, $"{Path.GetFileName(gamePath)}.7z");

            if (File.Exists(archiveLink))
            {
                var Length      = DxLocalTransf.Tools.FileSizeFormatter.Convert(new FileInfo(archiveLink).Length);
                var resConflict = SafeBoxes.Ask4_DestConflict
                                  (
                    LanguageManager.Instance.Lang.File_Ex, archiveLink, Length,
                    E_DxConfB.OverWrite | E_DxConfB.Trash
                                  );

                switch (resConflict)
                {
                case E_Decision.OverWriteAll:
                case E_Decision.OverWrite:
                    File.Delete(archiveLink);
                    break;

                case E_Decision.Trash:
                case E_Decision.TrashAll:
                    OpDFiles.Trash(archiveLink);
                    break;
                }
            }

            SevenZipCompression sevZippy = new SevenZipCompression(_SystemPath)
            {
                IsPaused    = this.IsPaused,
                TokenSource = this.TokenSource
            };

            sevZippy.UpdateStatus += (x, y) => HeTrace.WriteLine(y.Message);


            var res = (bool?)PackMe_IHM.ZipCompressFolder(sevZippy, () => sevZippy.CompressFolder(
                                                              gamePath, Path.GetFileName(gamePath), Config.SevZipLvlCompression), "Compression 7z");

            if (res != true)
            {
                return;
            }

            #region Création du fichier  MD5
            if (Config.CreateMD5)
            {
                Gen_PlusCalculator calculator = Gen_PlusCalculator.Create(CancelToken);

                string sum = string.Empty;
                PackMe_IHM.LaunchOpProgress(calculator,
                                            () => sum = calculator.Calcul(sevZippy.ArchiveLink, () => MD5.Create()),
                                            "Calcul de somme");

                HashCalc.Files.ClassicParser.Write(sevZippy.ArchiveLink, sum, HashType.md5, overwrite: true);
            }
            else
            {
                HeTrace.WriteLine($"[Run] MD5 disabled", this);
            }
            #endregion
        }