534 字
3 分钟
C#文件后缀名批量修改
2025-12-21

功能特点#

  • 支持批量处理多个文件
  • 交互式输入新后缀名
  • 自动检查文件是否存在
  • 实时显示处理进度
  • 简单易用的命令行界面

代码实现#

using System;
using System.IO;
namespace extension_change
{
internal class Program
{
static void Main(string[] args)
{
if (args.GetLength(0) > 0)
{
Console.WriteLine("请输入要修改的后缀名,不需要输入.");
string extension = Console.ReadLine();
string[] files = args;
foreach (string file in files)
{
if(extension != "")
{
if (File.Exists(file))
{
Console.WriteLine("正在修改" + file + "的后缀名为" + extension);
string fileName = Path.GetFileNameWithoutExtension(file);
string filePath = Path.GetDirectoryName(file);
string newFileName = fileName + "." + extension;
string newFilePath = filePath + "\\" + newFileName;
File.Move(file, newFilePath);
Console.WriteLine();
}
else
{
Console.WriteLine("文件不存在");
}
}
else
{
Console.WriteLine("没有输入后缀名");
}
}
Console.WriteLine("修改完成");
}
else
{
Console.WriteLine("没有输入文件路径");
}
Console.ReadKey();
}
}
}

使用方法#

  1. 编译程序生成可执行文件
  2. 打开命令行工具
  3. 使用以下格式运行程序:
    program.exe 文件路径1 文件路径2 ...
  4. 在程序提示时输入新的文件后缀名

使用示例#

extension_change.exe C:\docs\file1.txt C:\docs\file2.txt
请输入要修改的后缀名,不需要输入.
log
正在修改C:\docs\file1.txt的后缀名为log
正在修改C:\docs\file2.txt的后缀名为log
修改完成

核心功能解析#

1. 参数检查#

if (args.GetLength(0) > 0)

程序首先检查是否通过命令行参数传入了文件路径。

2. 文件处理流程#

string fileName = Path.GetFileNameWithoutExtension(file);
string filePath = Path.GetDirectoryName(file);
string newFileName = fileName + "." + extension;
string newFilePath = filePath + "\\" + newFileName;

程序使用Path类的方法来:

  • 获取不含扩展名的文件名
  • 获取文件所在目录
  • 构建新的文件名和完整路径

3. 文件重命名#

File.Move(file, newFilePath);

使用File.Move方法实现文件重命名,这实际上是在同一目录下移动文件。

注意事项#

  1. 文件权限:确保程序有足够的权限访问和修改目标文件
  2. 文件占用:确保目标文件没有被其他程序占用
  3. 文件名冲突:如果目标文件名已存在,新文件会覆盖原文件
  4. 路径格式:建议使用完整路径以避免路径错误
C#文件后缀名批量修改
https://non266.top/posts/extension-change/
作者
non_no266
发布于
2025-12-21
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
示例歌曲
示例艺术家
封面
示例歌曲
示例艺术家
0:00 / 0:00