C++ 路径文件存在限制为 260 个字符
C++ PathFileExists limited to 260 chars
根据MSDN,PathFileExists()
函数仅支持文件路径<260
我想检查远程位置是否存在路径。现在从法律上讲,我可以创建一个名称为 256 个字母的文件,当我向其添加服务器名称时,总长度超过 260,因此PathFileExists()
无法使用它。
我还有什么其他选项来检查文件是否存在?
由于所有 Shell 路径处理函数都限制为 MAX_PATH
- 1 个字符,如果您需要支持更长的文件名,则必须改用 kernel32 函数。您的选择是:
- 查找第一个文件
- 创建文件
- 获取文件属性
虽然 FindFirstFile 相当简单,但如果函数不返回错误代码,则需要调用 FindClose。如果要查询网络上的文件,这将触发额外的网络往返。还会为 CreateFile 触发额外的网络往返,您必须清理调用 CloseHandle HANDLE
。另外,它可能会给出错误的答案。
如果需要支持长度超过 MAX_PATH
个字符的文件名,则使用 GetFileAttributes 的其余选项是查询文件是否存在的建议方法。
相关文章:
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 为什么 Serial.println(<char[]>);返回随机字符?
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- 在基于英语的系统上将 UTF-8 路径转换为宽字符会引发异常
- 使用连续字符及其路径查找矩阵中最长路径的长度
- 在Powershell中以编程方式转储路径时,重复字符被跳过
- 在 Windows 上,stat 和 GetFileAttributes 对于包含奇怪字符的路径失败
- 无法转换 .CATPart 文件.错误:输入文件路径似乎包含不支持的字符
- 如何确定具有文件路径的字符串中是否有任何非 ASCII 字符
- 在 cpp 中验证路径:无法使用 ASCII 代码删除特殊字符
- C++ 路径文件存在限制为 260 个字符
- 获取路径删除和串联字符
- 如何将常量字符**路径分配为字符串
- 使用sf_open时,libsndfile将路径截断为512个字符
- BoostPython:在路径中加载带有unicode字符的Python模块
- 文件夹路径序列化的最大字符长度