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); }
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); }