目标路径的用户输入字符串可能包含空格或其他无效字符。
示例:“C:\ users \ username \\ directoryname \”
请注意,路径两侧都有空格,中间只有一个空格的文件夹名称无效。检查它是否是绝对路径是不够的,因为它只能真正处理前导空格。删除尾随空格也是不够的,因为您仍然在中间留下了无效的space-for-folder-name。
在尝试使用它之前,我如何证明路径有效?
答案 0 :(得分:6)
“证明”路径有效的唯一方法是打开它。
SHLWAPI提供了一组路径函数,可用于规范化路径或验证路径是否有效。这对于拒绝明显不好的路径很有用,但是如果不经过文件系统,你仍然不能相信路径是有效的。
使用NTFS,我相信您提供的路径实际上是有效的(尽管Explorer可能不允许您创建只有空格的目录。)
答案 1 :(得分:2)
Boost Filesystem库提供帮助程序来操作文件,路径等等......看看simple ls example和存在函数。
答案 2 :(得分:1)
我使用GetFileAttributes来检查是否存在。适用于两个文件夹(在返回值中查找FILE_ATTRIBUTE_DIRECTORY标志)和文件。我已经这么做了多年,从来没有遇到过问题。
答案 3 :(得分:0)