如何使用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上工作。如何将此路径添加到我的程序中?

如何使用c#regex更改文件和目录名

有许多特殊情况需要处理才能将文件名编码为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);
  }
 }
}