加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

winapi – Windows内核中可能的最大文件名长度

发布时间:2020-12-14 01:58:52 所属栏目:Windows 来源:网络整理
导读:我想知道,Windows内核允许的最长名称长度是多少? 例如:我知道内核使用UNICODE_STRING结构来保存所有对象路径,并且由于宽字符串的字节长度存储在USHORT内,因此允许最大路径长度为2 ^ 15-1个字符.是否对文件名(而不是路径)有类似的严格限制? (我不在乎NTFS
我想知道,Windows内核允许的最长名称长度是多少?

例如:我知道内核使用UNICODE_STRING结构来保存所有对象路径,并且由于宽字符串的字节长度存储在USHORT内,因此允许最大路径长度为2 ^ 15-1个字符.是否对文件名(而不是路径)有类似的严格限制? (我不在乎NTFS或FAT32是否有特殊的限制;我正在寻找内核中理论上允许的最长名称,假设没有额外的文件系统或shell限制.)

(编辑:对于那些想知道为什么这甚至很重要的人,考虑一下,通常,遍历目录是通过FindFirstFile / FindNextFile调用实现的,每个文件调用一次.给定名为NtQueryDirectoryFile的函数,它是底层系统调用,每个返回多个文件名调用,实际上可以利用路径上的这个最大长度限制来创建一个非常快速的目录遍历器,它只使用堆栈作为缓冲区.现在我试图扩展这个概念,我需要知道文件名的最大大小.)

解决方法

路径的最大长度为32,767个字符,其中每个路径组件(目录或文件)的最大长度可以为255个字符(更准确地说,是GetVolumeInformation函数的lpMaximumComponentLength参数中返回的值).

这是documented on MSDN.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读