Windows에서 DLL 파일 이름을 바꿀 수 없습니다.

Windows에서 DLL 파일 이름을 바꿀 수 없습니다.

나는 다운로드했다PicoScope SDK, DLL 중 하나의 이름을 바꾸려고 합니다(그들의 이름에 따라).프로그래머 가이드 5페이지). 그러나 Windows 10에서는 이 작업을 수행할 수 없습니다.

ps3000a.dll파일명을 에서 으로 변경하려고 합니다 PS3000a.dll.

파일은 FAT32 USB 드라이브에 있습니다.

이것이 작동하지 않는 이유가 있습니까?

문제의 GIF


명령줄을 통해서도 작동하지 않는 것 같습니다. 힘내 배쉬:

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*

파워셸:

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

따라서 Windows 10이 알고 있기 때문에 파일 이름을 바꾸려는 시도가 실패하는 것 같습니다 PS3000a.dll.ps3000a.dll실제로 파일 이름을 변경하는 것이 아닙니다.. 그러나 먼저 파일 이름을 고유한 이름으로 바꾸면그 다음에원하는 대소문자를 사용하기 위해 두 번째로 이름을 바꾸면 작동합니다.

흥미롭게도 Windows 7에서는 그렇지 않습니다. 프로세스 모니터의 파일 이름 바꾸기 작업은 다음과 같습니다. 작업은 Windows 10 및 7에서 모든 측면에서 동일합니다. 플래그 ReplaceIfExists는 False이고 결과는 둘 다 SUCCESS입니다.

여기에 이미지 설명을 입력하세요

그러나 Windows 7 상자에서만 전체 추적을 비교하면 다음 SetRenameInformationFile과 같은 작업이 수행됩니다 WriteFile.

윈도우 7 여기에 이미지 설명을 입력하세요

윈도우 10 여기에 이미지 설명을 입력하세요

Windows 10은 업데이트된 정보를 파일 시스템에 쓰지 않습니다!

답변2

새 이름이 이전 이름과 대문자만 다른 경우 Windows 탐색기에는 원래 대문자가 표시됩니다. Explorer 인스턴스를 종료하고 다시 시작하면 폴더로 돌아가면 새 대문자가 표시됩니다.

관련 정보