Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 2
0
        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);
                }
            }
        }
Ejemplo n.º 3
0
        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("");
        }
Ejemplo n.º 4
0
        //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();
        }