
Я скачалPicoScope SDK, и я пытаюсь переименовать одну из DLL (согласно ихруководство программиста стр.5). Однако Windows 10 не позволяет мне этого сделать.
Я пытаюсь изменить имя файла с ps3000a.dll
на PS3000a.dll
.
Файл находится на USB-накопителе FAT32.
Есть ли причина, по которой это не работает?
Похоже, через командную строку это тоже не работает. 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; флаг ReplaceIfExists
False, а результат SUCCESS в обоих случаях:
Однако, сравнивая полные трассировки, можно увидеть, что только в Windows 7 окно следует SetRenameInformationFile
за операцией WriteFile
:
Windows 10 просто не записывает обновленную информацию в файловую систему!
решение2
Если новое имя отличается от старого только заглавными буквами, то Проводник Windows покажет исходную заглавную букву. Если вы выйдете из Проводника и снова запустите его, вернетесь в папку, то вы увидите новую заглавную букву.