gpt4 book ai didi

WinAPI 和 NTFS : reading longer paths

转载 作者:行者123 更新时间:2023-12-02 03:30:46 24 4
gpt4 key购买 nike

NTFS 在完全限定路径中允许最多 32k 个字符。出于兼容性原因,WinAPI 仅允许完整路径减去文件名最多 248 个字符,总共 255 个字符。有没有办法使用 DeviceIOControl() 来绕过此限制并读取任何可能更长的路径字符串?如果可能的话,有什么方法可以获取完整路径名超过 255 个字符的文件的句柄吗?

最佳答案

至少从 Windows 2000 开始,kernel32 中基于文件/路径的函数的大多数宽版本都支持更长的路径(如果您使用 \\?\ path prefix) .

例如,如果您查看 MSDN 上的 CreateFile,它会显示:

In the ANSI version of this function, the name is limited to MAX_PATH characters. To extend this limit to 32,767 wide characters, call the Unicode version of the function and prepend "\\?\" to the path.

如果您将 longPathAware 标记添加到 list 或更改计算机组策略,Windows 10 版本 1607(周年更新)及更高版本允许您访问更长的路径而无需前缀。

无论您做什么,shell 的部分内容、CreateProcessLoadLibrary 都不支持 > MAX_PATH。

关于WinAPI 和 NTFS : reading longer paths,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49905039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com