【发布时间】:2015-03-25 06:23:09
【问题描述】:
我注意到在 Windows 上,文件打开不区分大小写。
(例如,fstream("text.txt") 将打开,无论实际文件名是:Text.txt)
我该如何让这个区分大小写呢? (除非文件名也匹配正确的大小写,否则文件不会打开)
【问题讨论】:
-
_wfopen 的行为是否相同?这很奇怪,因为 NTFS 是区分大小写的 fs。
-
我怀疑
fstream是否有为您执行此操作的功能。相反,您可以使用文件系统操作来找出文件的真实名称,并将其与您要查找的文件名进行比较。第一步:stackoverflow.com/questions/74451/… -
区分大小写是一种音量策略,因此最好尊重它。 This article 有很多很好的信息。如果您真的想强制区分大小写,可以手动与实际文件名进行比较。
-
fstream使用 Win32;虽然 NTFS 文件系统支持区分大小写,但 Win32 不支持 .. 所以“Text.txt”和“tExT.txt”可能能够存在于您的 NTFS 卷上的同一目录中,但是当您调用fstream("text.txt");时,它会只打开 1 个文件。如果要区分大小写,则需要链接 POSIX 子系统而不是 Win32 子系统。 -
@txtechhelp 先跳上你的时光机回到 1999 年……