534 字
3 分钟
C#文件后缀名批量修改
功能特点
- 支持批量处理多个文件
- 交互式输入新后缀名
- 自动检查文件是否存在
- 实时显示处理进度
- 简单易用的命令行界面
代码实现
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(); } }}使用方法
- 编译程序生成可执行文件
- 打开命令行工具
- 使用以下格式运行程序:
program.exe 文件路径1 文件路径2 ...
- 在程序提示时输入新的文件后缀名
使用示例
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方法实现文件重命名,这实际上是在同一目录下移动文件。
注意事项
- 文件权限:确保程序有足够的权限访问和修改目标文件
- 文件占用:确保目标文件没有被其他程序占用
- 文件名冲突:如果目标文件名已存在,新文件会覆盖原文件
- 路径格式:建议使用完整路径以避免路径错误
C#文件后缀名批量修改
https://non266.top/posts/extension-change/ 部分信息可能已经过时