ПРИМЕЧАНИЕ: В этом примере кода мы открываем каталог и ищем файлы PDF с открытыми и закрытыми скобками в имени файла.Вы можете проверить и заменить любой символ в имени, которое вам нравится, или просто указать новое имя, используя функции замены.
Существуют и другие способы работы с этим кодом для более сложных переименований, но мое главное намерение состояло в том, чтобы показатькак использовать File.Move для пакетного переименования.Это работало против 335 файлов PDF в 180 каталогах, когда я запускал его на своем ноутбуке.Это подстегнуть момент кода, и есть более сложные способы сделать это.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BatchRenamer
{
class Program
{
static void Main(string[] args)
{
var dirnames = Directory.GetDirectories(@"C:\the full directory path of files to rename goes here");
int i = 0;
try
{
foreach (var dir in dirnames)
{
var fnames = Directory.GetFiles(dir, "*.pdf").Select(Path.GetFileName);
DirectoryInfo d = new DirectoryInfo(dir);
FileInfo[] finfo = d.GetFiles("*.pdf");
foreach (var f in fnames)
{
i++;
Console.WriteLine("The number of the file being renamed is: {0}", i);
if (!File.Exists(Path.Combine(dir, f.ToString().Replace("(", "").Replace(")", ""))))
{
File.Move(Path.Combine(dir, f), Path.Combine(dir, f.ToString().Replace("(", "").Replace(")", "")));
}
else
{
Console.WriteLine("The file you are attempting to rename already exists! The file path is {0}.", dir);
foreach (FileInfo fi in finfo)
{
Console.WriteLine("The file modify date is: {0} ", File.GetLastWriteTime(dir));
}
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.Read();
}
}
}