private void UpdatePreviews() { if (currentPicture != null) { renameView.labFilenameExample.Text = FileNameFormater.FormatFilename(currentPicture, renameView.txtFilename.Text) + ".jpg"; renameView.labDirectoryExample.Text = FileNameFormater.FormatFilename(currentPicture, renameView.txtDirectoryname.Text); } }
private void RenameFiles(RenameModel model) { newFiles = new List <string>(); RenamerEngine renamer = new RenamerEngine(model.FilenamePattern.Contains("%#"), !model.FilenamePattern.Contains("%##")); files.Sort(); foreach (string filename in files) { // get the new name form the metadata PictureMetaData pmd = new PictureMetaData(filename); string newname = FileNameFormater.FormatFilename(pmd, model.FilenamePattern); newname = newname.Replace("%##", "%#"); pmd.Close(); if (newname != "") { // open a file info FileInfo fi = new FileInfo(filename); newname = fi.DirectoryName + "\\" + newname; // give the new name to the renamer renamer.AddNewRenameItem(fi, newname); } else { newFiles.Add(filename); } // next this.FireOneFileProcessed(); } // and now: do all the dirty working renamer.CopyMove(true); // create the list of new files foreach (string filename in renamer.GetAllNewFilenames()) { if (File.Exists(filename)) { newFiles.Add(filename); } } }
private string GetNewDirectoryname(DirectoryInfo directory, string pattern) { pattern = pattern.Replace("%##%", "%#"); // get the new name form the metadata PictureMetaData pmd; bool dontClosePmd = false; if (this.rootDirectory.ToLower() == directory.FullName.ToLower() && this.currentPicture != null) { pmd = this.currentPicture; dontClosePmd = true; } else { pmd = GetPictureMetaDataFromDirectory(directory); } if (pmd != null) { string newname = FileNameFormater.FormatFilename(pmd, pattern); if (!dontClosePmd) { pmd.Close(); } if (newname != "" && newname.ToLower() != directory.Name.ToLower()) { newname = directory.Parent.FullName + "\\" + newname; newname = newname.Replace("\\\\", "\\"); return(newname); } } return(""); }
//TODO private void btnRename_Click(object sender, EventArgs e) { IStatusDisplay statusDisplay = (IStatusDisplay)this.FindForm(); StopOtherWorker(); List <string> filenames; if (this.chkFilename.Checked) { filenames = this.GetAllFileList(this.chkSubdirs.Checked); } else { filenames = new List <string>(); } List <string> directories; if (this.chkDirectory.Checked) { directories = this.GetAllDirectoryList(this.chkSubdirs.Checked); } else { directories = new List <string>(); } statusDisplay.WorkStart(filenames.Count + directories.Count); #region renaming files Features.Renamer.RenamerEngine renamer = new Features.Renamer.RenamerEngine(this.txtFilename.Text.Contains("%#"), !this.txtFilename.Text.Contains("%##")); filenames.Sort(); foreach (string filename in filenames) { // get the new name form the metadata PictureMetaData pmd = new PictureMetaData(filename); string newname = FileNameFormater.FormatFilename(pmd, this.txtFilename.Text); newname = newname.Replace("%##", "%#"); pmd.Close(); if (newname != "") { // open a file info FileInfo fi = new FileInfo(filename); newname = fi.DirectoryName + "\\" + newname; // give the new name to the renamer renamer.AddNewRenameItem(fi, newname); } // next statusDisplay.WorkNextPart(); } // and now: do all the dirty working renamer.Rename(); Settings.Default.FilenameFormats.AddIfGrowing(this.txtFilename.Text); #endregion string goToDir; #region renaming directories renamer = new Features.Renamer.RenamerEngine(this.txtDirectoryname.Text.Contains("%#"), !this.txtDirectoryname.Text.Contains("%##")); directories.Sort(); foreach (string directory in directories) { // get the new name form the metadata PictureMetaData pmd; DirectoryInfo di = new DirectoryInfo(directory); bool dontClosePmd = false; if (this.currentDirectory == di.FullName && this.currentPicture != null) { pmd = this.currentPicture; dontClosePmd = true; } else { pmd = GetPictureMetaDataFromDirectory(di); } if (pmd != null) { string newname = FileNameFormater.FormatFilename(pmd, this.txtDirectoryname.Text); newname = newname.Replace("%##", "%#"); if (!dontClosePmd) { pmd.Close(); } if (newname != "") { // give the new name to the renamer renamer.AddNewRenameItem(di, newname); } } // next statusDisplay.WorkNextPart(); } // and now: do all the dirty working DirectoryInfo curdi = new DirectoryInfo(this.currentDirectory); goToDir = curdi.Parent.FullName + "\\" + renamer.GetNewName(this.currentDirectory); renamer.Rename(); Settings.Default.DirectorynameFormats.AddIfGrowing(this.txtDirectoryname.Text); #endregion if (this.chkDirectory.Checked) { if (Directory.Exists((goToDir))) { this.FireDirectoryNameChanged(goToDir); } } else { this.FireDirectoryChanged(); } statusDisplay.WorkFinished(); }