Невозможно переименовать файл DLL в Windows

Невозможно переименовать файл DLL в Windows

Я скачалPicoScope SDK, и я пытаюсь переименовать одну из DLL (согласно ихруководство программиста стр.5). Однако Windows 10 не позволяет мне этого сделать.

Я пытаюсь изменить имя файла с ps3000a.dllна PS3000a.dll.

Файл находится на USB-накопителе FAT32.

Есть ли причина, по которой это не работает?

GIF-изображение проблемы


Похоже, через командную строку это тоже не работает. 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*

PowerShell:

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

FAT32этофайловая система, нечувствительная к регистру. Таким образом, два файла с одинаковым именем, отличающиеся только регистром, не допускаются. Например, вы не можете иметь два файла с именами PS3000a.dllи ps3000a.dllв одной папке.

Поэтому, похоже, ваша попытка переименовать файл PS3000a.dllне ps3000a.dllудалась, потому что Windows 10 знаетна самом деле вы не меняете имя файла. Однако, если вы сначала переименуете файл, чтобы он имел другое имя,затемпереименуйте его во второй раз, чтобы использовать в предполагаемом случае, это сработает.

Любопытно, что в Windows 7 это не так. Вот операция переименования файла в Process Monitor. Операция идентична во всех отношениях в Windows 10 и 7; флаг ReplaceIfExistsFalse, а результат SUCCESS в обоих случаях:

введите описание изображения здесь

Однако, сравнивая полные трассировки, можно увидеть, что только в Windows 7 окно следует SetRenameInformationFileза операцией WriteFile:

Windows 7 введите описание изображения здесь

Виндовс 10 введите описание изображения здесь

Windows 10 просто не записывает обновленную информацию в файловую систему!

решение2

Если новое имя отличается от старого только заглавными буквами, то Проводник Windows покажет исходную заглавную букву. Если вы выйдете из Проводника и снова запустите его, вернетесь в папку, то вы увидите новую заглавную букву.

Связанный контент