Как изменить имя файла и каталога с помощью c # regex - PullRequest
2 голосов
/ 08 марта 2012

Я новичок в 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.Как я могу добавить этот путь к моей программе?

1 Ответ

1 голос
/ 08 марта 2012

Есть много особых случаев, которые вы должны обработать, чтобы закодировать имя файла как 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);
  }
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...