Datei oder Ordner umbenennen", um die Kleinschreibung In C# mit DirectoryInfo - /FileInfo.MoveTo()

Ich habe ein Programm, benennt Dateien oder Ordner in Kleinbuchstaben, Namen.

Schreibe ich diesen code:

    private void Replace(string FolderLocation, string lastText, string NewText)
    {
        if (lastText == "")
        {
            lastText = " ";
        }
        if (NewText == "")
        {
            NewText = " ";
        }

        DirectoryInfo i = new DirectoryInfo(FolderLocation);
        string NewName = "";
        if (checkBox2.Checked)
        {
            if (i.Parent.FullName[i.Parent.FullName.Length - 1].ToString() != "\\") //For parents like E:/
            {
                NewName = i.Parent.FullName + "\\" + i.Name.Replace(lastText, NewText);
            }
            else
            {
                NewName = i.Parent.FullName + i.Name.Replace(lastText, NewText);
            }

                NewName = NewName.ToLower();


            if (NewName != i.FullName)
            {
                 i.MoveTo(NewName);
            }
            foreach (DirectoryInfo sd in i.GetDirectories())
            {
                Replace(sd.FullName, lastText, NewText);
            }
        }
        if (checkBox1.Checked)
        {
            foreach (FileInfo fi in i.GetFiles())
            {
                NewName = fi.Directory + "\\" + fi.Name.Replace(lastText, NewText);

                    NewName = NewName.ToLower();

                if (NewName != fi.FullName)
                {
                    fi.MoveTo(NewName);
                }
            }
        }
    }

aber ich bekomme eine exception:

"Quell-und Zielpfad müssen Verschieden sein."

wie kann ich lösen dieses problem?

  • Windows ist groß-und Kleinschreibung, soweit Dateinamen betroffen sind.
  • ok.wie ist es aber, Dateinamen anzeigen?
  • Es verwendet, was gespeichert wird. Aber beim Vergleich von Dateinamen - "FILENAME" == "filename" == "FileName", soweit es ihn betrifft.
  • Ich denke, es ist nicht erlaubt unter Windows OS eine bestimmte Datei zB "test.txt" und "Test.txt" im gleichen Ordner. Das ist, warum Ihr geht eine Ausnahme. MoveTo kopiert die Datei an eine neue position und löscht die alte. Versuchen Dateisystem.Benennen Sie stattdessen (msdn.microsoft.com/en-gb/library/...)
  • obwohl im standard-Fall Sie richtig sind Windows - /NTFS-tatsächlich kann so konfiguriert werden, erlauben.
Schreibe einen Kommentar