2 Stimmen

Ändern von Datei- und Verzeichnisnamen mit c# regex

Ich bin neu in C#. Ich möchte ein Programm schreiben, um die Namen von Dateien und Verzeichnissen zu ändern.

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
}

Ich möchte am Pfad arbeiten C:\Users\dell\Desktop\abc . Wie kann ich diesen Pfad zu meinem Programm hinzufügen?

1voto

Adriano Repetti Punkte 62420

Es gibt viele spezielle Fälle sollten Sie behandeln, um einen Dateinamen als URL zu kodieren, könnten Sie nicht HttpServerUtility.UrlEncode() verwenden? Ich bin nicht sicher, dass dies ist, was Sie sowieso wollen:

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);
  }
 }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X