我下载了PicoScope SDK,我试图重命名其中一个 DLL(根据它们的程序员指南 p.5)。但是,Windows 10 不允许我这样做。
我正在尝试将文件名从 更改ps3000a.dll
为PS3000a.dll
。
该文件位于 FAT32 USB 驱动器上。
有什么原因导致它不起作用吗?
它似乎也无法通过命令行工作。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*
电源外壳:
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 和 Windows 7 上的操作在各个方面都相同;标志ReplaceIfExists
为 False,结果为 SUCCESS:
但是,比较完整的跟踪,只有 Windows 7 框按照以下SetRenameInformationFile
操作进行操作WriteFile
:
Windows 10 根本不会将更新的信息写入文件系统!
答案2
如果新名称与旧名称仅在大小写上不同,则 Windows 资源管理器将显示原始大小写。如果您退出资源管理器实例并重新启动它,然后返回到该文件夹,那么您将看到新的大小写。