首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Windows环境中的文件路径是否不区分大小写?

Windows环境中的文件路径是否不区分大小写?
EN

Stack Overflow用户
提问于 2011-08-26 09:10:01
回答 3查看 49.4K关注 0票数 51

假设Windows本地和网络文件路径不区分大小写是否安全?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-26 09:15:46

是。Windows (本地)文件系统(包括NTFS以及FAT和变体)(通常)不区分大小写。网络文件系统的底层实现可能是区分大小写的,但是,大多数允许Windows访问它的软件(如SMB)会自动使区分大小写的文件系统对Windows不敏感。

有关详细信息,请阅读Wikipedia article on filenames中的部分。

票数 46
EN

Stack Overflow用户

发布于 2011-08-26 13:56:16

在Windows上,区分大小写实际上是在应用程序打开文件的方式中实现的。NTFS可以是区分大小写的文件系统,并且可以愉快地存储文件,在同一目录中具有相同的名称,只是大小写不同。

在Windows上,所有文件最终都是通过Windows打开的-如果FILE_FLAG_POSIX_SEMANTICS标志被传递给调用(并且正在访问的文件系统本身区分大小写),那么文件将基于完全匹配的名称打开。如果没有传递FILE_FLAG_POSIX_SEMANTICS,那么文件系统会打开一个不区分大小写的文件,并打开其中一个具有匹配名称的文件。如果有多个,则无法确定实际打开的是哪一个。

Windows上的大多数C和C++运行时实现都不提供对此机制的任何访问,也从不使用此标志,因此访问区分大小写行为的惟一方法是直接使用Windows API。

tl;dr -您的语言运行时可能会将您的文件系统公开为不区分大小写或保留大小写。如果您直接使用windows API,则可以完全区分大小写访问受支持的文件系统。

票数 35
EN

Stack Overflow用户

发布于 2020-01-25 19:36:42

我在windows上运行大小写敏感的文件系统。我以目录为单位使用它:https://devblogs.microsoft.com/commandline/per-directory-case-sensitivity-and-wsl/

这会破坏所有不考虑它的windows应用程序,并执行诸如将文件请求全部转换为小写之类的操作。

但我不排除其他人在整个硬盘和网络资源上运行大小写敏感。

通常,只有开发人员才会这样做,所以这完全取决于您的用例。

如果您正在为高级高级用户制作应用程序,我会说这不是一个安全的假设。

我建议每个人在为windows构建应用程序时都假定文件系统区分大小写。因为你只有在假设不区分大小写的情况下才会遇到麻烦。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7199039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档