在 Windows XP 和 Windows 7 上运行良好的应用程序突然在 Windows 10 Pro 中出现问题。但是,对于 Windows 10 IoT Enterprise,它似乎运行良好。早在 2018 年 5 月,它似乎在 Windows 10 上也能正常工作,但随着 Windows 10 的较新安装,它就不起作用了。
经过一番调查,我们发现该应用程序似乎无法通过 Windows 10 Pro 创建用于持久数据的文件集。
进一步看,我们发现完整的路径名不正确。似乎存储文件的目录的路径名虽然构造不正确,但在 Windows XP 和 Windows 7 上运行良好,但在 Windows 10 Pro 上却不行。
生成的路径名如下所示(这些是路径反斜杠,而不是用于转义字符的 C/C++ 反斜杠):
\C:\DirA\DirB\DirC
而生成的更正路径名如下所示:
\\.\C:\DirA\DirB\DirC
阅读 MSDN 关于命名文件、路径和命名空间的文章,我对构造有效路径名的多种不同方式感到有些困惑。似乎不同的 Windows 文件系统(FAT16、FAT32、NTFS 等)具有不同的命名约定。
我应该使用什么路径名格式,以便我的应用程序能够在C:具有多个不同版本的 Windows 的本地驱动器上的特定目录中创建和打开文件?我对 Windows 7、POSReady 7、Windows 10 和 Windows 10 IoT Enterprise(与 Windows 10 IoT 不同)特别感兴趣。
我正在使用 Win32 APICreateFile()函数来创建/打开文件。