Umbenennen des Verzeichnisses mit dem gleichen Namen

8

Ich versuche, ein Verzeichnis in c # in einen Namen umzubenennen, der nur bei unterschiedlichem Fall derselbe ist.

Zum Beispiel: f: \ test zu f: \ TEST

Ich habe diesen Code ausprobiert:

%Vor%

und ich bekomme eine IOException - Quell- und Zielpfad müssen anders sein. Ich habe auch Directory.Move () mit dem gleichen Ergebnis versucht.

Wie wird das gemacht? Muss ich ein separates temporäres Verzeichnis erstellen, die enthaltenen Dateien aus dem ursprünglichen Verzeichnis in das temporäre Verzeichnis verschieben und dann das Original löschen und das temporäre Verzeichnis umbenennen?

    
scott 26.10.2009, 00:26
quelle

4 Antworten

11

Nun, Sie müssen kein separates Verzeichnis erstellen und alles verschieben. Benennen Sie den Ordner einfach in etwas anderes um und kehren Sie dann zu dem gewünschten Namen zurück:

%Vor%     
Joey 26.10.2009, 00:32
quelle
1

Warum nicht das Verzeichnis temp umbenennen und dann wieder in TEST umbenennen?

    
pavium 26.10.2009 00:31
quelle
0

Auch wenn die .NET-Methode DirectoryInfo.MoveTo eine Ausnahme auslöst, wenn der Name identisch ist, können Sie die Windows-API MoveFile funktioniert wie folgt, um die Umrandung des Verzeichnisnamens festzulegen:

%Vor%

Mit dieser externen Erklärung:

%Vor%

Es funktioniert gut für mich, wenn der Name nur im Fall unterscheidet. Ich habe nicht versucht, es so zu nennen, wenn der Name bereits genau so ist wie angegeben.

Das hat den Vorteil, dass das Verzeichnis niemals unter seinem ursprünglichen Namen verschwindet.

Es hat jedoch den Nachteil, dass es nur unter Windows funktioniert.

    
ygoe 10.08.2016 22:15
quelle
-1

Die Antwort ist ja in diesem Fall - das Dateisystem selbst sieht die beiden nicht anders, also müssen Sie löschen und das Hinzufügen als neuen Namen (oder Verschieben / Löschen / Verschieben wie vorgeschlagen)

    
cynicalman 26.10.2009 00:29
quelle

Tags und Links