Click here to Skip to main content
15,896,338 members
Articles / Programming Languages / XML

Using Events: Filerenamer II Project

Rate me:
Please Sign up or sign in to vote.
5.00/5 (6 votes)
24 Feb 2019CPOL17 min read 25.2K   220   16  
This is a utility program for bulk/batch renaming of files that demonstrates using and creating events
using System;
using System.Windows.Forms;
using System.IO;

namespace FileRenamer2
{
    /// <summary>
    /// this version of the class just creates the preview of the changes
    /// </summary>
    public static class p
    {
        public static frm_Main frmParent = null;

        public static void prefix()
        {

            string pString, fString;

            pString = frmParent.replaceText.Text;
            if (pString != "")
            {
                for (int i = 0; i < frmParent.DataGridView1.Rows.Count; i++)
                {
                    if ((bool)frmParent.DataGridView1[0, i].Value == true)
                    {
                        fString = frmParent.DataGridView1[1, i].Value.ToString();
                        frmParent.DataGridView1[2, i].Value = pString + fString;
                        frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Blue;
                    }
                    else
                    {
                        frmParent.DataGridView1[2, i].Value = "";
                    }
                }
            }
            else
                MessageBox.Show("There is no text to prepend!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        public static void suffix()
        {
            string p1String = "", p2String = "", fString = "", rText = "";
            string[] splitArray = null;

            rText = frmParent.replaceText.Text;
            if (rText != "")
            {
                for (int i = 0; i < frmParent.DataGridView1.Rows.Count; i++)
                {
                    if ((bool)frmParent.DataGridView1[0, i].Value == true)
                    {
                        fString = frmParent.DataGridView1[1, i].Value.ToString();
                        splitArray = fString.Split('.');
                        if (splitArray.Length > 1)
                        {
                            p2String = "." + splitArray[splitArray.Length - 1];
                            p1String = fString.Replace(p2String, "");
                        }
                        else
                        {
                            p1String = fString;
                            p2String = "";
                        }
                        frmParent.DataGridView1[2, i].Value = p1String + rText + p2String;
                        frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Blue;
                    }
                    else
                    {
                        frmParent.DataGridView1[2, i].Value = "";
                    }
                }
            }
            else
                MessageBox.Show("There is no text to append!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        public static void infix()
        {
            string p1String = "", p2String = "", fString = "";
            string rText = "", sText = "";
            Int32 inLoc = 0;

            rText = frmParent.replaceText.Text;
            sText = frmParent.searchText.Text;
            if (rText != "" && sText != "")
            {
                for (int i = 0; i < frmParent.DataGridView1.Rows.Count; i++)
                {
                    if ((bool)frmParent.DataGridView1[0, i].Value == true)
                    {
                        fString = frmParent.DataGridView1[1, i].Value.ToString();
                        inLoc = fString.IndexOf(sText);
                        if (inLoc >= 0)
                        {
                            p1String = fString.Substring(0, inLoc + sText.Length);
                            p2String = fString.Substring(inLoc + sText.Length);
                            frmParent.DataGridView1[2, i].Value = p1String + rText + p2String;
                            frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Blue;
                        }
                        else
                        {
                            MessageBox.Show("Search string not found in: \n" + fString,
                             "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            frmParent.DataGridView1[2, i].Value = "search string not found";
                            frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Red;
                        }
                    }
                    else
                        frmParent.DataGridView1[2, i].Value = "";
                }
            }
            else
            {
                if (rText == "")
                    MessageBox.Show("There is no text to insert!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                if (sText == "")
                    MessageBox.Show("There is no text value to search for!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

        public static void replace()
        {
            string fString = "", rText = "", sText = "";
            Int32 inLoc = 0;

            rText = frmParent.replaceText.Text;
            sText = frmParent.searchText.Text;
            if (sText != "")
            {
                for (int i = 0; i < frmParent.DataGridView1.Rows.Count; i++)
                {
                    if ((bool)frmParent.DataGridView1[0, i].Value == true)
                    {
                        fString = frmParent.DataGridView1[1, i].Value.ToString();
                        inLoc = fString.IndexOf(sText);
                        if (inLoc >= 0)
                        {
                            frmParent.DataGridView1[2, i].Value = fString.Replace(sText, rText);
                            frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Blue;
                        }
                        else
                        {
                            //MessageBox.Show("Search string not found in: \n" + fString,
                            //"Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            frmParent.DataGridView1[2, i].Value = "search string not found";
                            frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Red;
                        }
                    }
                    else
                        frmParent.DataGridView1[2, i].Value = "";
                }
            }
            else
            {
                if (sText == "")
                    MessageBox.Show("There is no text value to search for!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

        public static void numBefore()
        {
            string pString = "", fString = "";
            Int32 pNum = 0, pInc = 0;
            string pText = "", eText = "";

            pString = frmParent.startNumber.Text;
            int iTemp = 0; // dummy for the next test
            if (int.TryParse(pString, out iTemp) == true && pString != "")
            {
                pNum = iTemp;
                int.TryParse(frmParent.stepNumber.Text, out pInc);
                pText = frmParent.numberPrefix.Text.Trim();
                eText = frmParent.numberSuffix.Text.Trim();
                for (int i = 0; i < frmParent.DataGridView1.Rows.Count; i++)
                {
                    if ((bool)frmParent.DataGridView1[0, i].Value == true)
                    {
                        fString = frmParent.DataGridView1[1, i].Value.ToString();
                        frmParent.DataGridView1[2, i].Value = pText + pNum.ToString() + eText + fString;
                        frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Blue;
                        pNum = pNum + pInc;
                    }
                    else
                        frmParent.DataGridView1[2, i].Value = "";
                }
            }
            else
                MessageBox.Show("There is no number to prepend!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

        }

        public static void numAfter()
        {
            string pString = "", fString = "";
            Int32 pNum = 0, pInc = 0;
            string[] splitArray = null;
            string pText = "", eText = "", p1String = "", p2String = "";

            pString = frmParent.startNumber.Text;
            if (Int32.TryParse(pString, out pNum) == true && pString != "")
            {
                Int32.TryParse(frmParent.stepNumber.Text, out pInc);
                pText = frmParent.numberPrefix.Text.Trim();
                eText = frmParent.numberSuffix.Text.Trim();
                for (int i = 0; i < frmParent.DataGridView1.Rows.Count; i++)
                {
                    if ((bool)frmParent.DataGridView1[0, i].Value == true)
                    {
                        fString = frmParent.DataGridView1[1, i].Value.ToString();
                        splitArray = fString.Split('.');
                        if (splitArray.Length > 1)
                        {
                            p2String = "." + splitArray[splitArray.Length - 1];
                            p1String = fString.Replace(p2String, "");
                        }
                        else
                        {
                            p1String = fString;
                            p2String = "";
                        }
                        frmParent.DataGridView1[2, i].Value = p1String + pText + pNum.ToString() + eText + p2String;
                        frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Blue;
                        pNum = pNum + pInc;
                    }
                    else
                        frmParent.DataGridView1[2, i].Value = "";
                }
            }
            else
                MessageBox.Show("There is no number to append!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        public static void numInfix()
        {
            string p1String = "", p2String = "", fString = "", sText = "";
            Int32 inLoc = 0, pInc = 0, pNum = 0;
            string pString = "", pText = "", eText = "";

            pString = frmParent.startNumber.Text;
            sText = frmParent.searchText.Text;
            if (pString != "" && sText != "" && Int32.TryParse(pString, out pNum) == true)
            {
                Int32.TryParse(frmParent.stepNumber.Text, out pInc);
                pText = frmParent.numberPrefix.Text.Trim();
                eText = frmParent.numberSuffix.Text.Trim();
                for (int i = 0; i < frmParent.DataGridView1.Rows.Count; i++)
                {
                    if ((bool)frmParent.DataGridView1[0, i].Value == true)
                    {
                        fString = frmParent.DataGridView1[1, i].Value.ToString();
                        inLoc = fString.IndexOf(sText);
                        if (inLoc > 0)
                        {
                            p1String = fString.Substring(0, inLoc + sText.Length);
                            p2String = fString.Substring(inLoc + sText.Length);
                            frmParent.DataGridView1[2, i].Value = p1String + pText + pNum.ToString() + eText + p2String;
                            frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Blue;
                            pNum = pNum + pInc;
                        }
                        else
                        {
                            //MessageBox.Show("Search string not found in: " & vbCrLf & fString, _
                            // "Error", MessageBoxButtons.OK, MessageBoxIcon.Information)
                            frmParent.DataGridView1[2, i].Value = "search string not found";
                            frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Red;
                        }
                    }
                    else
                        frmParent.DataGridView1[2, i].Value = "";
                }
            }
            else
            {
                if (pString == "")
                    MessageBox.Show("There is no number to insert!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                if (sText == "")
                    MessageBox.Show("There is no text value to search for!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

    }

    /// <summary>
    /// This version of the class actually executes the changes to the file names
    /// </summary>
    public static class x
    {
        public static frm_Main frmParent = null;

        public static void prefix()
        {
            string pString, fString;

            pString = frmParent.replaceText.Text;
            if (pString != "")
            {
                for (int i = 0; i < frmParent.DataGridView1.Rows.Count; i++)
                {
                    if ((bool)frmParent.DataGridView1[0, i].Value == true)
                    {
                        fString = frmParent.DataGridView1[1, i].Value.ToString();
                        frmParent.DataGridView1[2, i].Value = pString + fString;
                        frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Blue;
                        File.Move(frmParent.sCurrentDirectoryPath + "\\" + fString, frmParent.sCurrentDirectoryPath + "\\" + pString + fString);
                    }
                    else
                    {
                        frmParent.DataGridView1[2, i].Value = "";
                    }
                }
                frmParent.GetFiles();
            }
            else
                MessageBox.Show("There is no text to prepend!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        public static void suffix()
        {
            string p1String = "", p2String = "", fString = "", rText = "";
            string[] splitArray = null;

            rText = frmParent.replaceText.Text;
            if (rText != "")
            {
                for (int i = 0; i < frmParent.DataGridView1.Rows.Count; i++)
                {
                    if ((bool)frmParent.DataGridView1[0, i].Value == true)
                    {
                        fString = frmParent.DataGridView1[1, i].Value.ToString();
                        splitArray = fString.Split('.');
                        if (splitArray.Length > 1)
                        {
                            p2String = "." + splitArray[splitArray.Length - 1];
                            p1String = fString.Replace(p2String, "");
                        }
                        else
                        {
                            p1String = fString;
                            p2String = "";
                        }
                        frmParent.DataGridView1[2, i].Value = p1String + rText + p2String;
                        frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Blue;
                        File.Move(frmParent.sCurrentDirectoryPath + "\\" + fString, frmParent.sCurrentDirectoryPath + "\\" + p1String + rText + p2String);
                    }
                    else
                    {
                        frmParent.DataGridView1[2, i].Value = "";
                    }
                }
                frmParent.GetFiles();
            }
            else
                MessageBox.Show("There is no text to append!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        public static void infix()
        {
            string p1String = "", p2String = "", fString = "";
            string rText = "", sText = "";
            Int32 inLoc = 0;

            rText = frmParent.replaceText.Text;
            sText = frmParent.searchText.Text;
            if (rText != "" && sText != "")
            {
                for (int i = 0; i < frmParent.DataGridView1.Rows.Count; i++)
                {
                    if ((bool)frmParent.DataGridView1[0, i].Value == true)
                    {
                        fString = frmParent.DataGridView1[1, i].Value.ToString();
                        inLoc = fString.IndexOf(sText);
                        if (inLoc >= 0)
                        {
                            p1String = fString.Substring(0, inLoc + sText.Length);
                            p2String = fString.Substring(inLoc + sText.Length);
                            frmParent.DataGridView1[2, i].Value = p1String + rText + p2String;
                            frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Blue;
                            File.Move(frmParent.sCurrentDirectoryPath + "\\" + fString, frmParent.sCurrentDirectoryPath + "\\" + p1String + rText + p2String);
                        }
                        else
                        {
                            MessageBox.Show("Search string not found in: \n" + fString,
                             "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            frmParent.DataGridView1[2, i].Value = "search string not found";
                            frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Red;
                        }
                    }
                    else
                        frmParent.DataGridView1[2, i].Value = "";
                }
                frmParent.GetFiles();
            }
            else
            {
                if (rText == "")
                    MessageBox.Show("There is no text to insert!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                if (sText == "")
                    MessageBox.Show("There is no text value to search for!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

        public static void replace()
        {
            string fString = "", rText = "", sText = "", pString = "";
            Int32 inLoc = 0;

            rText = frmParent.replaceText.Text;
            sText = frmParent.searchText.Text;
            if (sText != "")
            {
                for (int i = 0; i < frmParent.DataGridView1.Rows.Count; i++)
                {
                    if ((bool)frmParent.DataGridView1[0, i].Value == true)
                    {
                        fString = frmParent.DataGridView1[1, i].Value.ToString();
                        inLoc = fString.IndexOf(sText);
                        if (inLoc >= 0)
                        {
                            pString = fString.Replace(sText, rText);
                            frmParent.DataGridView1[2, i].Value = pString;
                            frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Blue;
                            File.Move(frmParent.sCurrentDirectoryPath + "\\" + fString, frmParent.sCurrentDirectoryPath + "\\" + pString);
                        }
                        else
                        {
                            //MessageBox.Show("Search string not found in: \n" + fString,
                            //"Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            frmParent.DataGridView1[2, i].Value = "search string not found";
                            frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Red;
                        }
                    }
                    else
                        frmParent.DataGridView1[2, i].Value = "";
                }
                frmParent.GetFiles();
            }
            else
            {
                if (sText == "")
                    MessageBox.Show("There is no text value to search for!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

        public static void numbefore()
        {
            string pString = "", fString = "";
            Int32 pNum = 0, pInc = 0;
            string pText = "", eText = "";

            pString = frmParent.startNumber.Text;
            int iTemp = 0; // dummy for the next test
            if (int.TryParse(pString, out iTemp) == true && pString != "")
            {
                pNum = iTemp;
                int.TryParse(frmParent.stepNumber.Text, out pInc);
                pText = frmParent.numberPrefix.Text.Trim();
                eText = frmParent.numberSuffix.Text.Trim();
                for (int i = 0; i < frmParent.DataGridView1.Rows.Count; i++)
                {
                    if ((bool)frmParent.DataGridView1[0, i].Value == true)
                    {
                        fString = frmParent.DataGridView1[1, i].Value.ToString();
                        frmParent.DataGridView1[2, i].Value = pText + pNum.ToString() + eText + fString;
                        frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Blue;
                        pNum = pNum + pInc;
                        File.Move(frmParent.sCurrentDirectoryPath + "\\" + fString, frmParent.sCurrentDirectoryPath + "\\" + pText + pNum.ToString() + eText + fString);
                    }
                    else
                        frmParent.DataGridView1[2, i].Value = "";
                }
                frmParent.GetFiles();
            }
            else
                MessageBox.Show("There is no number to prepend!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

        }

        public static void numafter()
        {
            string pString = "", fString = "";
            Int32 pNum = 0, pInc = 0;
            string[] splitArray = null;
            string pText = "", eText = "", p1String = "", p2String = "";

            pString = frmParent.startNumber.Text;
            if (Int32.TryParse(pString, out pNum) == true && pString != "")
            {
                Int32.TryParse(frmParent.stepNumber.Text, out pInc);
                pText = frmParent.numberPrefix.Text.Trim();
                eText = frmParent.numberSuffix.Text.Trim();
                for (int i = 0; i < frmParent.DataGridView1.Rows.Count; i++)
                {
                    if ((bool)frmParent.DataGridView1[0, i].Value == true)
                    {
                        fString = frmParent.DataGridView1[1, i].Value.ToString();
                        splitArray = fString.Split('.');
                        if (splitArray.Length > 1)
                        {
                            p2String = "." + splitArray[splitArray.Length - 1];
                            p1String = fString.Replace(p2String, "");
                        }
                        else
                        {
                            p1String = fString;
                            p2String = "";
                        }
                        frmParent.DataGridView1[2, i].Value = p1String + pText + pNum.ToString() + eText + p2String;
                        frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Blue;
                        pNum = pNum + pInc;
                        File.Move(frmParent.sCurrentDirectoryPath + "\\" + fString, frmParent.sCurrentDirectoryPath + "\\" + p1String + pText + pNum.ToString() + eText + p2String);
                    }
                    else
                        frmParent.DataGridView1[2, i].Value = "";
                }
                frmParent.GetFiles();
            }
            else
                MessageBox.Show("There is no number to append!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        public static void numInfix()
        {
            string p1String = "", p2String = "", fString = "", sText = "";
            Int32 inLoc = 0, pInc = 0, pNum = 0;
            string pString = "", pText = "", eText = "";

            pString = frmParent.startNumber.Text;
            sText = frmParent.searchText.Text;
            if (pString != "" && sText != "" && Int32.TryParse(pString, out pNum) == true)
            {
                Int32.TryParse(frmParent.stepNumber.Text, out pInc);
                pText = frmParent.numberPrefix.Text.Trim();
                eText = frmParent.numberSuffix.Text.Trim();
                for (int i = 0; i < frmParent.DataGridView1.Rows.Count; i++)
                {
                    if ((bool)frmParent.DataGridView1[0, i].Value == true)
                    {
                        fString = frmParent.DataGridView1[1, i].Value.ToString();
                        inLoc = fString.IndexOf(sText);
                        if (inLoc > 0)
                        {
                            p1String = fString.Substring(0, inLoc + sText.Length);
                            p2String = fString.Substring(inLoc + sText.Length);
                            frmParent.DataGridView1[2, i].Value = p1String + pText + pNum.ToString() + eText + p2String;
                            frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Blue;
                            pNum = pNum + pInc;
                            File.Move(frmParent.sCurrentDirectoryPath + "\\" + fString, frmParent.sCurrentDirectoryPath + "\\" + p1String + pText + pNum.ToString() + eText + p2String);
                        }
                        else
                        {
                            //MessageBox.Show("Search string not found in: " & vbCrLf & fString, _
                            // "Error", MessageBoxButtons.OK, MessageBoxIcon.Information)
                            frmParent.DataGridView1[2, i].Value = "search string not found";
                            frmParent.DataGridView1[2, i].Style.ForeColor = System.Drawing.Color.Red;
                        }
                    }
                    else
                        frmParent.DataGridView1[2, i].Value = "";
                }
                frmParent.GetFiles();
            }
            else
            {
                if (pString == "")
                    MessageBox.Show("There is no number to insert!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                if (sText == "")
                    MessageBox.Show("There is no text value to search for!", "Missing Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Retired
United States United States
To keep it simple, I'll just list my computer/software experience.

1970 learned BASIC on an IBM 360 timeshare terminal while working for MCI when we consisted of about a dozen people.

1978 bought an Apple II Plus with a floppy drive [140kbytes!! wow! ha ha ha].

1978-1985 sharpened my programming skills in BASIC, Forth, assembly language, and Pascal on the Apple II which I upgraded along the way. I was a member of the A.P.P.L.E. and submitted several programs and articles to various bulletin boards. Received a couple of awards.

1985 bought my first PC.

1985-2000 Eventually tried Windows 286 and tossed it, then finally bought Windows 386 and kept it. Studied and passed the MCSE certification. Added C and C++ to my repertoire and started building programs for Windows for Workgroups 3.11. Got a couple of awards for utilites I wrote.

2000 I retired from my 'day job' in electronics and went to work full time as a programmer/analyst and network engineer.

2000-2005 worked on web and client server software. The applications included web and desktop based learning software including testing, progress reporting, etc.

Worked with another guy in creating a web based parts catalog on an SQL Server database from the ashes of a web fiasco they bought based on MS Access. I then built a massive MS Word VBA based catalog generator for them that took the SQL database and generated their 1,000 page catalog.

2005-2007 worked as a contract programmer. Supported magazine fulfillment and billing via web apps in ASP and ASP .Net. Upgraded my skillset to the .Net universe.

2007-2010 worked for a large manufacturing corporation's shop floor software support. Analyzed and mapped out the two dozen applications and two dozen flat files plus a half dozen SQL Server db's that supported and controlled the entire manufacturing process. Created a math intensive app to convert customer orders into machine control data.

2010 - retired... sort of... *grin*

Comments and Discussions