C# 实现文本文件批量重命名工具

简介: 批量重命名工具可统一修改文件夹内文件名,支持添加前缀或替换关键词。通过C#代码实现,安全高效,避免文件覆盖,适用于大量文件的命名整理,操作简单便捷。

批量重命名工具用于统一修改文件夹下的文件名称(如添加前缀、替换关键词)。

案例:文件批量重命名

using System.IO;
public class FileRenameTool
{
    // 批量添加文件前缀
    public static void AddPrefix(string folderPath, string prefix)
    {
        if (!Directory.Exists(folderPath))
        {
            Console.WriteLine("文件夹不存在!");
            return;
        }
        // 获取文件夹下的所有文件
        string[] files = Directory.GetFiles(folderPath);
        int successCount = 0;
        foreach (string file in files)
        {
            try
            {
                string fileName = Path.GetFileName(file);
                string newFileName = prefix + fileName;
                string newFilePath = Path.Combine(folderPath, newFileName);
                // 避免覆盖已存在的文件
                if (!File.Exists(newFilePath))
                {
                    File.Move(file, newFilePath);
                    successCount++;
                    Console.WriteLine($"重命名成功:{fileName} → {newFileName}");
                }
                else
                {
                    Console.WriteLine($"跳过:{newFileName} 已存在");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"重命名失败({Path.GetFileName(file)}):{ex.Message}");
            }
        }
        Console.WriteLine($"批量重命名完成!成功重命名 {successCount} 个文件");
    }
    // 批量替换文件名中的关键词
    public static void ReplaceKeyword(string folderPath, string oldKeyword, string newKeyword)
    {
        if (!Directory.Exists(folderPath))
        {
            Console.WriteLine("文件夹不存在!");
            return;
        }
        string[] files = Directory.GetFiles(folderPath);
        int successCount = 0;
        foreach (string file in files)
        {
            try
            {
                string fileName = Path.GetFileName(file);
                if (fileName.Contains(oldKeyword))
                {
                    string newFileName = fileName.Replace(oldKeyword, newKeyword);
                    string newFilePath = Path.Combine(folderPath, newFileName);
                    if (!File.Exists(newFilePath))
                    {
                        File.Move(file, newFilePath);
                        successCount++;
                        Console.WriteLine($"重命名成功:{fileName} → {newFileName}");
                    }
                    else
                    {
                        Console.WriteLine($"跳过:{newFileName} 已存在");
                    }
                }
                else
                {
                    Console.WriteLine($"跳过:{fileName} 不包含关键词 {oldKeyword}");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"重命名失败({Path.GetFileName(file)}):{ex.Message}");
            }
        }
        Console.WriteLine($"批量替换完成!成功重命名 {successCount} 个文件");
    }
    public static void Main(string[] args)
    {
        Console.WriteLine("=== 文件批量重命名工具 ===");
        Console.Write("请输入文件夹路径:");
        string folderPath = Console.ReadLine()?.Trim() ?? "";
        Console.Write("请选择操作(1-添加前缀,2-替换关键词):");
        string choice = Console.ReadLine()?.Trim() ?? "";
        switch (choice)
        {
            case "1":
                Console.Write("请输入前缀:");
                string prefix = Console.ReadLine()?.Trim() ?? "";
                AddPrefix(folderPath, prefix);
                break;
            case "2":
                Console.Write("请输入要替换的关键词:");
                string oldKeyword = Console.ReadLine()?.Trim() ?? "";
                Console.Write("请输入替换后的关键词:");
                string newKeyword = Console.ReadLine()?.Trim() ?? "";
                ReplaceKeyword(folderPath, oldKeyword, newKeyword);
                break;
            default:
                Console.WriteLine("无效操作!");
                break;
        }
    }
}
相关文章
|
3月前
|
C#
C# 随机数生成:Random 类用法
Random类用于生成伪随机数,适用于游戏、验证码、测试等场景。通过静态实例避免重复创建,确保随机性。提供整数、小数、布尔值及指定长度的随机字符串生成方法,使用简便且高效。注意需复用实例防止种子重复导致随机数相同。
|
3月前
|
存储 算法 C#
C# 哈希值计算:MD5/SHA256 加密
本示例展示了C#中使用MD5和SHA256算法生成哈希值的方法,适用于密码加密与数据校验。MD5安全性较低,建议仅用于非敏感场景;密码存储推荐使用SHA256配合盐值以增强安全性。
|
3月前
|
JSON API C#
C# 实现简单的 HTTP 请求工具(GET/POST)
HTTP请求工具用于调用第三方API,支持GET和POST方法,实现数据获取与提交。示例代码展示通过HttpClient发送异步POST请求,处理响应并解析JSON结果,适用于高效集成外部服务。
|
3月前
|
C#
C# 实现图片压缩工具(基础版)
基于 System.Drawing 实现图片尺寸缩放与质量压缩,支持常见格式。通过计算缩放比例生成新图像,并调整压缩质量以减小文件大小。适用于 .NET 平台,需安装 System.Drawing.Common NuGet 包。
|
3月前
|
JSON C# 数据格式
C# 实现简单的 HTTP 请求工具(POST 补充)
该代码实现了一个基于 HttpClient 的异步 HTTP POST 请求工具类,支持以 JSON 格式提交数据并反序列化响应结果,具备异常处理机制,适用于 .NET 环境下的轻量级网络请求操作。
|
3月前
|
C#
C# 实现发送邮件功能(SMTP)
通过SMTP协议实现邮件发送,支持文本与附件,需配置邮箱SMTP信息(如QQ邮箱授权码)。示例代码展示C#中如何使用SmtpClient发送邮件,适用于QQ、163、Gmail等主流邮箱服务。
|
3月前
|
存储 数据库连接 C#
C# 配置文件读取:App.config 用法
App.config用于存储程序配置(如数据库连接、接口地址),避免硬编码,提升可维护性。通过ConfigurationManager读取配置,支持字符串、整型、布尔值及连接字符串的获取,需引用System.Configuration程序集。
|
3月前
|
存储 开发框架 缓存
C# 实现图片验证码的 WebAPI 版(ASP.NET Core)
基于ASP.NET Core实现的验证码服务,生成带干扰线和随机旋转文字的4位图文验证码,支持内存存储与验证。需安装System.Drawing.Common包。
|
3月前
|
网络协议 安全 C#
C# 实现基于 TCP 的简单聊天程序(服务端)
基于TcpListener实现TCP聊天服务器,监听指定端口,接收客户端连接并实时转发消息。支持多客户端并发通信,新连接自动加入广播列表,断开后自动移除,确保线程安全与稳定运行。
|
3月前
|
C#
C# 实现简单的 AOP(面向切面编程)
通过反射与委托实现AOP,可在方法执行前后动态添加日志、计时等横切逻辑,提升代码复用性与可维护性。