如何使用c#regex更改文件和目录名
本文关键字:文件 何使用 c#regex | 更新日期: 2023-09-27 18:27:11
我是C#的新手。我想写一个更改文件和目录名称的程序。
public static string ToUrlSlug(this string text)
{
return Regex.Replace(
Regex.Replace(
Regex.Replace(
text.Trim().ToLower()
.Replace("ö", "o")
.Replace("ç", "c")
.Replace("ş", "s")
.Replace("ı", "i")
.Replace("ğ", "g")
.Replace("ü", "u"),
@"'s+", " "), //multiple spaces to one space
@"'s", "-"), //spaces to hypens
@"[^a-z0-9's-]", ""); //removing invalid chars
}
我想在路径C:'Users'dell'Desktop'abc
上工作。如何将此路径添加到我的程序中?
有许多特殊情况需要处理才能将文件名编码为URL,难道不能使用HttpServerUtility.UrlEncode()吗?我不确定这是你想要的:
public void RenameFiles(string folderPath, string searchPattern = "*.*")
{
foreach (string path in Directory.EnumerateFiles(folderPath, searchPattern))
{
string currentFileName = Path.GetFileNameWithoutExtension(path);
string newFileName = ToUrlSlug(currentFileName);
if (!currentFileName.Equals(newFileName))
{
string newPath = Path.Combine(Path.GetDirectoryName(path),
newFileName + Path.GetExtension(path));
File.Move(path, newPath);
}
}
}