======================================
C# 编程实例
======================================
实例一:文件批量重命名工具
============================
.. code-block:: csharp
:caption: BatchRename.cs
using System.Text.RegularExpressions;
public static class BatchRename
{
///
/// 批量重命名文件
///
/// 目标目录
/// 搜索模式 如 "*.txt"
/// 重命名函数
/// 重命名的文件数量
public static int RenameFiles(
string directory,
string pattern,
Func replaceFunc)
{
var files = Directory.GetFiles(directory, pattern);
int count = 0;
foreach (var filePath in files)
{
var dir = Path.GetDirectoryName(filePath)!;
var fileName = Path.GetFileName(filePath);
var newName = replaceFunc(fileName);
if (newName != fileName)
{
var newPath = Path.Combine(dir, newName);
File.Move(filePath, newPath);
count++;
Console.WriteLine($"重命名: {fileName} -> {newName}");
}
}
return count;
}
}
// 使用示例
// 添加前缀:"IMG_" + 原文件名
BatchRename.RenameFiles(@"C:\Photos", "*.jpg",
name => $"IMG_{name}");
// 替换空格为下划线
BatchRename.RenameFiles(@"C:\Docs", "*.pdf",
name => name.Replace(" ", "_"));
// 序号重命名(正则匹配)
int seq = 1;
BatchRename.RenameFiles(@"C:\Data", "*.csv",
name => $"{seq++:D4}_{name}");
实例二:日志分析工具
======================
.. code-block:: csharp
:caption: LogParser.cs
public class LogEntry
{
public DateTime Timestamp { get; set; }
public string Level { get; set; } = "";
public string Message { get; set; } = "";
public string? Source { get; set; }
}
public class LogParser
{
private static readonly Regex LogPattern = new(
@"^\[(?