【发布时间】:2012-12-14 11:39:50
【问题描述】:
根据MSDNPathFileExists()函数只支持文件路径
我想检查远程位置是否存在路径。现在合法地我可以创建一个名称为 256 个字母长的文件,当我添加服务器名称时,总长度超过 260,因此PathFileExists() 无法使用它。
还有什么其他选项可以检查文件是否存在?
【问题讨论】:
-
我会试试看它是否适合我,但我仍然更喜欢使用直接方法来检查存在而不是这种间接方式。必须有一个 API 可以处理长路径
-
等效地,调用
FindFirstFile。由于您只对一个文件感兴趣,请不要致电FindNextFile。 “查找”是非常直接的 IMO。 -
C 字符串和 MAX_PATH 的诅咒非常猖獗。原生 Windows 操作系统支持最多 32,766 个字符的路径,您可以在 win32 路径名前加上 `\\?\` 将其转换为原生路径名。但是您必须仔细挑选 api 函数,PathFileExists() 受 MAX_PATH 限制。 Kernel32 函数很好。
-
我会通过的。解释这类事情只会引起遇到这种限制的用户的愤怒。他们确实射杀了这里的信使。