DLL-Datei kann nicht unter Windows umbenannt werden

998
pensono

Ich habe das PicoScope SDK heruntergeladen, und ich versuche, eine der DLLs umzubenennen (laut Programmierhandbuch S. 5 ). Windows 10 lässt mich dies jedoch nicht zu.

Ich versuche, den Dateinamen von ps3000a.dllin zu ändern PS3000a.dll.

Die Datei befindet sich auf einem FAT32-USB-Laufwerk.

Gibt es einen Grund, warum dies nicht funktioniert?

GIF of the problem


Es scheint auch nicht über die Befehlszeile zu funktionieren. Git Bash:

MINGW64 /f/SDK/lib $ ls | grep 3000a.dll ps3000a.dll*  MINGW64 /f/SDK/lib $ mv ps3000a.dll PS3000a.dll  MINGW64 /f/SDK/lib $ ls | grep 3000a.dll ps3000a.dll* 

Power Shell:

PS F:\SDK\lib> dir | findstr 3000a.dll -a---- 7/11/2017 3:05 PM 2803016 ps3000a.dll PS F:\SDK\lib> mv ps3000a.dll PS3000a.dll PS F:\SDK\lib> dir | findstr 3000a.dll -a---- 7/11/2017 3:05 PM 2803016 ps3000a.dll 
1
Vielleicht fehlt mir etwas, aber dein Gif lässt es so aussehen, als würdest du nur versuchen, "PS" in "PS" zu ändern. Wenn ja, ist es nicht notwendig. Der Windows Explorer weiß, dass es das Gleiche ist, und lässt es unverändert. Bill Hileman vor 6 Jahren 0
Windows unterscheidet standardmäßig nicht zwischen Groß- und Kleinschreibung. Haben Sie versucht, die Datei in etwas Einzigartiges umzubenennen und sie dann wieder so umzubenennen, wie Sie es möchten? Mokubai vor 6 Jahren 2
@Mokubai Das hat funktioniert. Ich bin nicht einmal sicher, warum der Programmierführer das Gehäuse des Namens erwähnt pensono vor 6 Jahren 0
@pensono, dass der Guide "wenn nötig" sagt ... haben Sie es für nötig gehalten? Mokubai vor 6 Jahren 0
@Mokubai Ich habe es nicht für nötig gehalten. Ich habe versucht, den Namen zu ändern, und ich fand es interessant, dass ich es nicht konnte. pensono vor 6 Jahren 0
Meinetwegen. Akademische Neugier ist es dann. Wie sieht es aus, wenn die Datei in einer Eingabeaufforderung oder PowerShell angezeigt wird? Ich bin nicht völlig überrascht über das Verhalten, das Sie sehen, da es das ist, was ich in der Vergangenheit gesehen habe, aber für mich ist es nicht wichtig oder schwierig, "Feature" zu umgehen, da es nur wenige Programme gibt, mit denen tatsächlich gearbeitet wird Dateien unter Windows in Groß- und Kleinschreibung. Mokubai vor 6 Jahren 0
Sie haben versucht, einer Datei den gleichen Namen zu geben, ändern Sie jedoch einfach die Schreibweise des Namens. Unter Windows funktioniert das natürlich nicht. Ramhound vor 6 Jahren 0
@Mokubai Funktioniert auch nicht. Ich habe die Frage mit den Transkripten aktualisiert. Könnte es damit zusammenhängen, dass die Datei auf einem USB-Laufwerk gespeichert ist? pensono vor 6 Jahren 0
Was ist der Dateisystemtyp des Laufwerks, auf dem Sie dies ausführen? Twisty Impersonator vor 6 Jahren 0
@ TwistyImpersonator Es ist auf FAT32 pensono vor 6 Jahren 0
Ja, passiert mir bei Win 10 (aber nicht Win 7) Twisty Impersonator vor 6 Jahren 0
Relevant: https://askubuntu.com/q/391228 Twisty Impersonator vor 6 Jahren 0

2 Antworten auf die Frage

1
Twisty Impersonator

FAT32 ist ein Dateisystem, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird . Daher sind zwei Dateien mit demselben Namen nur dann zulässig, wenn sie nicht zulässig sind. Sie können beispielsweise nicht zwei Dateien mit dem Namen PS3000a.dllund ps3000a.dllim selben Ordner haben.

Es scheint daher, dass Ihr Versuch, die Datei umzubenennen PS3000a.dll, ps3000a.dllfehlschlägt, da Windows 10 weiß, dass Sie den Dateinamen nicht wirklich ändern . Wenn Sie die Datei jedoch zunächst umbenennen, um einen eindeutigen Namen zu erhalten, und dann ein zweites Mal umbenennen, um den gewünschten Fall zu verwenden, funktioniert sie.

Seltsamerweise ist dies unter Windows 7 nicht der Fall. Hier ist der Vorgang zum Umbenennen von Dateien in Process Monitor. Die Bedienung ist unter Windows 10 und 7 in jeder Hinsicht identisch. Das ReplaceIfExistsFlag ist False und das Ergebnis ist in beiden Fällen ERFOLGREICH:

enter image description here

Beim Vergleich der vollständigen Spuren folgt jedoch nur die Windows 7-Box der SetRenameInformationFileOperation mit einer WriteFileOperation:

Windows 7 enter image description here

Windows 10 enter image description here

Windows 10 schreibt die aktualisierten Informationen einfach nicht in das Dateisystem!

Windows 7 verwendet Windows Explorer, während Windows 10 der Datei-Explorer ist Ramhound vor 6 Jahren 0
Allein in dieser Beobachtung sehe ich keine Erklärung. Die Tatsache, dass der Datei-Explorer aus dem Windows-Explorer stammt, legt nahe, dass es plausibel ist, dass Unterschiede * beabsichtigt * wären. Twisty Impersonator vor 6 Jahren 0
Ja, es ist absichtlich, wies auf eine grundlegende Erklärung hin. Ramhound vor 6 Jahren 0
0
headkase

Wenn sich der neue Name nur durch die Großschreibung von dem alten unterscheidet, zeigt Windows Explorer die ursprüngliche Großschreibung an. Wenn Sie die Explorer-Instanz beenden und neu starten, kehren Sie zum Ordner zurück. Anschließend wird die neue Großschreibung angezeigt.

Das Schließen und erneute Öffnen des Explorers funktionierte nicht, obwohl das Umbenennen in "3000a.dll" und dann in "PS3000a.dll" erfolgte pensono vor 6 Jahren 0
Meiner Erfahrung nach hatte ich genau das gleiche Problem, nämlich das Umbenennen und dann den Neustart des Explorers. headkase vor 6 Jahren 0
Möglicherweise macht es einen Unterschied, dass sich die betreffende Datei auf einem USB-Laufwerk befindet pensono vor 6 Jahren 0
@Pensono kann auch zu einem anderen Ordner navigieren und dann zurück navigieren. USB sollte jedoch keinen Unterschied machen. headkase vor 6 Jahren 0
Wenn Sie zu einem anderen Ordner und zurück navigieren, wird auch nicht der richtige Name angezeigt: / pensono vor 6 Jahren 0
Das stumpft dann. Für mich geht das. Windows 10 Pro x64 hier. headkase vor 6 Jahren 0