示例#1
0
        /// <summary>
        /// Декодируем файлы сохранений
        /// </summary>
        /// <param name="moveOriginal">Флаг переноса оригинальных файлов</param>
        /// <param name="path">Путь для поиска webp файлов</param>
        /// <returns>True - запуск успешен. False - папка не найдена.</returns>
        public bool DecodeFiles(string path, bool moveOriginal)
        {
            bool ex = false;

            //Если папка действительно существует
            if (Directory.Exists(path))
            {
                //Папка успешно получена
                ex = true;
                //Запускаем работу в отдельном потоке
                new Thread(() =>
                {
                    //Обнуляем количество сконвертированных файлов
                    int converted = 1;
                    //Инициализируем информацию о директории
                    DirectoryInfo di = new DirectoryInfo(path);
                    //Получаем список *.webp файлов в директории
                    List <FileInfo> FileList = di.GetFiles("*.webp").ToList();
                    //Проходимся по всем файлам директории
                    foreach (var file in FileList)
                    {
                        //Выполняем операции над файлом
                        FileWork(file, moveOriginal);
                        //Если работа была отменена
                        if (!isWork)
                        {
                            //Выходим из цикла
                            break;
                        }
                        //Вызываем ивент обновления
                        ConvertProgress?.Invoke(converted++, FileList.Count);
                    }

                    //Если работа всё ещё идёт
                    if (isWork)
                    {
                        //Открываем папку
                        Process.Start(savePath);
                        //Вызываем ивент завершения конвертации
                        ConvertComplete?.Invoke();
                    }
                }).Start();
            }
            return(ex);
        }
示例#2
0
 private void ReadingProgress(long arg1, long arg2)
 {
     ConvertProgress?.Invoke(arg1, arg2);
 }