3

根据MSDN PathFileExists()功能仅支持文件路径 < 260

我想检查远程位置是否存在路径。现在合法地我可以创建一个名称为 256 个字母长的文件,当我向其中添加服务器名称时,总长度超过 260,因此PathFileExists()无法使用它。

我还有什么其他选项可以检查文件是否存在?

4

1 回答 1

4

由于所有Shell 路径处理函数都限制为MAX_PATH- 1 个字符,因此如果您需要支持更长的文件名,则必须使用 kernel32 函数。您的选择是:

  1. 查找第一个文件
  2. 创建文件
  3. 获取文件属性

虽然FindFirstFile相当简单,但如果函数不返回错误代码,则需要调用FindClose 。如果您在网络上查询文件,这会触发额外的网络往返。额外的网络往返也会为CreateFile触发,您必须在其中清理HANDLE调用CloseHandle。加上它可能会给出错误的答案

如果您需要支持长于字符的文件名,则使用GetFileAttributes的其余选项是查询文件是否存在的建议方法。MAX_PATH

于 2012-12-22T20:12:57.463 回答