我已经阅读了很多关于这个主题的文档,但我似乎无法弄清楚。
原因是我必须处理可能比MAX_PATH
参数长的文件路径,导致很多问题
我已经用等效的 ( ) 替换了我的所有ANSI
-functions ,以便支持带有前缀的扩展文件路径长度:.GetFileAttributesA
UNICODE
GetFileAttributesW
\\?\
但是,我还需要检查文件路径是否是符号链接,我需要知道文件大小、上次修改日期等。
为此,我使用了该stat
函数,如下所示:
if (fstat(LongFilePath, &file_info) == 0) //THIS FAILS WITH THE ENAMETOOLONG FOR LONG FILEPATHS
ENAMETOOLONG
因此,由于文件名太长(超过MAX_PATH
),问题再次出现在错误中。
所以,我发现我可以用fstat
它的描述符来访问文件。但是,要获取描述符,我需要使用fopen
,这也有ENAMETOOLONG
局限性。
所以,我的问题是。对于stat
超过MAX_PATH