根据MSDN PathFileExists()
函数仅支持filepath< 260
我想检查远程位置是否存在路径。从法律上讲,我可以创建一个名称长度为256个字母的文件,当我向其添加服务器名称时,总长度超过260,因此PathFileExists()
无法使用它。
我还有哪些其他选项可以检查是否存在文件?
答案 0 :(得分:4)
由于所有Shell Path Handling Functions都限制为MAX_PATH
- 1个字符,因此如果需要支持更长的文件名,则必须使用kernel32函数。您的选择是:
虽然FindFirstFile非常简单,但如果函数未返回错误代码,则需要调用FindClose。如果您要查询网络上的文件,则会触发额外的网络往返。还会为CreateFile触发额外的网络往返,您需要清除HANDLE
来电CloseHandle。另外,它可能会提供wrong answer。
如果您需要支持长度超过MAX_PATH
个字符的文件名,则使用GetFileAttributes的剩余选项是查询文件存在的建议方法。