Rename Files in a Directory Recursively in Dot Net (.Net)

Code Snippets 4 U
using System;
using System.IO;

namespace FileManipulation
{
    internal class FileRenamer
    {
        private static readonly string startSource = "D:\\Original";
        internal void Rename()
        {
            // ask user for filename
            Console.WriteLine("Enter the filename without extension. Which have to be renamed\n");
            string fileName = Console.ReadLine();

            // ask user for alternate name
            Console.WriteLine("Enter the new name without extension\n");
            string newFileName = Console.ReadLine();

            // get all the files in a directory
            string[] files = Directory.GetFiles(startSource, "*.*", SearchOption.AllDirectories);

            int filesRenamed = 0;
            // check if any file name matches the filename we received
            foreach (string file in files)
            {
                FileInfo oldFileInfo = new FileInfo(file);
                // remove the extension from file names
                string fileNameWithoutExtension = oldFileInfo.Name.Remove(oldFileInfo.Name.LastIndexOf('.'));
               
                if (fileNameWithoutExtension == fileName)
                {
                    
                    // rename the file fileName to newFileName
                    File.Move(file, oldFileInfo.DirectoryName + "\\" + newFileName + oldFileInfo.Extension);

                    if (!File.Exists(file))
                    {
                        filesRenamed++;
                    }
                    else
                    {
                        Console.WriteLine("Unable to rename file " + fileName);
                    }
                }
               
            }

            Console.WriteLine("Successfully Renamed " + filesRenamed + " Files With Name " + fileName + " to " + newFileName);
        }
    }
}

Leave a Reply

Your email address will not be published. Required fields are marked *

eighteen − = 15