根据MSDN PathFileExists()
功能仅支持文件路径 < 260
我想检查远程位置是否存在路径。现在合法地我可以创建一个名称为 256 个字母长的文件,当我向其中添加服务器名称时,总长度超过 260,因此PathFileExists()
无法使用它。
我还有什么其他选项可以检查文件是否存在?
由于所有Shell 路径处理函数都限制为MAX_PATH
- 1 个字符,因此如果您需要支持更长的文件名,则必须使用 kernel32 函数。您的选择是:
虽然FindFirstFile相当简单,但如果函数不返回错误代码,则需要调用FindClose 。如果您在网络上查询文件,这会触发额外的网络往返。额外的网络往返也会为CreateFile触发,您必须在其中清理HANDLE
调用CloseHandle。加上它可能会给出错误的答案。
如果您需要支持长于字符的文件名,则使用GetFileAttributes的其余选项是查询文件是否存在的建议方法。MAX_PATH