我已经阅读了很多有关此主题的文档,但是似乎无法弄清楚。
原因是我必须处理可能比MAX_PATH
参数长的文件路径,导致很多问题
我已经用ANSI
等效项(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
提供的那样)