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);
}
}
}
Rename Files in a Directory Recursively in Dot Net (.Net)
