无法在 Windows 上重命名 DLL 文件

无法在 Windows 上重命名 DLL 文件

我下载了PicoScope SDK,我试图重命名其中一个 DLL(根据它们的程序员指南 p.5)。但是,Windows 10 不允许我这样做。

我正在尝试将文件名从 更改ps3000a.dllPS3000a.dll

该文件位于 FAT32 USB 驱动器上。

有什么原因导致它不起作用吗?

问题 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*

电源外壳:

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.dllps3000a.dll失败,因为 Windows 10 知道你实际上并没有改变文件名。但是,如果您先将文件重命名为具有不同名称,然后再次重命名它以使用您想要的情况,它可以起作用。

奇怪的是,Windows 7 上的情况并非如此。以下是 Process Monitor 中的文件重命名操作。Windows 10 和 Windows 7 上的操作在各个方面都相同;标志ReplaceIfExists为 False,结果为 SUCCESS:

在此处输入图片描述

但是,比较完整的跟踪,只有 Windows 7 框按照以下SetRenameInformationFile操作进行操作WriteFile

Windows 7的 在此处输入图片描述

Windows 10 在此处输入图片描述

Windows 10 根本不会将更新的信息写入文件系统!

答案2

如果新名称与旧名称仅在大小写上不同,则 Windows 资源管理器将显示原始大小写。如果您退出资源管理器实例并重新启动它,然后返回到该文件夹​​,那么您将看到新的大小写。

相关内容