[.NET] Dateiumbenennung nur Groß-/Kleinschreibung-Änderungen

  • Hat schonmal jemand mit .NET versucht, die Groß-/Kleinschreibung von Dateinamen zu ändern? Wollte grad mal einen Multirenamer schreiben (ich will jetzt keine Links zu "gibt's doch schon hier"!) und habe dazu die FileInfo.MoveTo bzw. File.Move-Methoden genutzt.

    Wenn man aber nur Groß-/Kleinschreibung ändert, verursacht das eine Exception, weil .NET beide Dateien für gleich hält ("Eine Datei kann nicht erstellt werden, wenn sie bereits vorhanden ist.").
    Auch WinAPI bringt diesmal leider nichts, MoveFileEx macht garkeine Änderungen dann.

    Das Kopieren der Dateien will ich nicht als Lösung betrachten (da sind ja auch recht große Dateien zwischen). Das Verschieben in einen temporären Ordner und dann wieder zurückschieben find' ich jetzt auch recht unsauber.

    Vielleicht hat jemand den heißen Tipp?
    Hier nochmal als Referenz mein Code:

  • Intern behandelt NTFS soweit ich weis alles als Großbuchstaben, man kann zwar zur Übersicht auch kleine verwenden, es wird dann aber nichts am Dateinamen an sich verändert. Ich hatte diese Erfaahrung gemacht, als bei einer Tagänderung mit der Leiste da unten im Explorer der Speichern-Button nicht erschienen ist, weil ich nur Groß/Kleinschreibung geändert hab.
    Du kannst aber doppeltes Umbenennen (erst ne 1 dranhängen, dann das eigentlliche Umbenennen) versuchen.

    Spoiler anzeigen


    Haupt-Laptop:
    Dell Vostro 3560 - i7-3632QM, 6GB
    Rechenknechte:
    Lenovo - i5, 4GB
    Medion - Pentium Dual Core, 3GB
    IBM T60 - Core Duo, 2GB
    Lenovo T400 - Core2Duo, 2GB
    Server:
    Sony - Pentium M, 512MB
    Unbenutzt:
    Noname - Celeron D, 1GB

  • Das klingt nach einer guten Idee, ich probier's gleich mal aus.

    Habe es jetzt so gelöst... ist noch etwas verbesserungswürdig.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!