protected override void InternalRunWorker(object arg)
        {
            try
            {
                _log.Info("Processing: " + arg);
                using (var path = new PowerPath(arg.ToString()))
                {
                    if (!FileExtensions.Contains(path.GetExtension()))
                    {
                        return;
                    }

                    var newDir = Path.Combine(path.GetDirectoryPath(), path.GetFileNameWithoutExtension());
                    Directory.CreateDirectory(newDir);

                    var newFile = Path.Combine(newDir, path.GetFileName());
                    File.Move(path.GetFullPath(), newFile);

                    _log.Info("Processed: " + arg);
                    OnProgressChanged(this, new ProgressChangedEventArgs(-1, newFile));
                }
            }
            catch (Exception e)
            {
                _log.Error(e, "Error processing: " + arg);
            }
        }
        public void InternalOrganizeDirectory(string path)
        {
            // enumerate
            UpdateUi(UiState.Working);
            var extensions         = new List <string>(Settings.Default.MovieExtensions.Split(';'));
            var dirEnumbEnumerable = Directory.EnumerateFiles(path, "*", SearchOption.TopDirectoryOnly);

            // walk
            foreach (var basePath in dirEnumbEnumerable)
            {
                try
                {
                    var currentPath = new PowerPath(basePath);
                    if (!extensions.Contains(currentPath.GetExtension()))
                    {
                        return;
                    }

                    var newDir  = Path.Combine(currentPath.GetDirectoryPath(), currentPath.GetFileNameWithoutExtension());
                    var newFile = Path.Combine(newDir, currentPath.GetFileName());

                    Directory.CreateDirectory(newDir);
                    File.Move(currentPath.GetFullPath(), newFile);
                    Model.Invoke(() => Model.DataView.Add(new MovedMovieEntry
                    {
                        Title = Path.GetFileName(path),
                        Path  = Path.GetDirectoryName(path)
                    }));
                }
                catch (Exception e)
                {
                    Debug.Print("Organize error: {0}. {1}", basePath, e.Message);
                }

                if (CancellationToken.IsCancellationRequested)
                {
                    break;
                }
            }

            // finish
            UpdateUi(UiState.Ready);
        }
Exemple #3
0
        private void RenameFile(PowerPath fileInfo, MovieEntryFacade entry)
        {
            var originalFilePath = fileInfo.GetFullPath();
            var renamedFile      = fileInfo.RenameFileByPattern(FileRenamePattern, entry);

            if (SwapThe)
            {
                renamedFile.SwapFileName(Commons.TheName);
            }
            var name = renamedFile.GetFileName();

            var destFilePath = Path.Combine(fileInfo.GetDirectoryPath(), name);

            if (originalFilePath == destFilePath)
            {
                return;
            }
            File.Move(originalFilePath, destFilePath);
            entry.FullPath = destFilePath;
        }
        private void HelperRenameFile(string path, MovieEntry entry)
        {
            // store original path
            var fileInfo         = new PowerPath(path);
            var originalFilePath = fileInfo.GetFullPath();

            // rename path
            var renamedFile = fileInfo.RenameFileByPattern(_settings.FileRenamePattern, entry);

            if (_settings.SwapThe)
            {
                renamedFile.SwapFileName(Commons.TheName);
            }

            // rename
            if (originalFilePath == renamedFile)
            {
                return;
            }
            File.Move(originalFilePath, renamedFile);
        }