2012-04-01 56 views
3

是否有任何路径开源操作库支持以下所有内容?长格式和多格式路径操作库?

  • 无限制路径长度(即,唯一的限制应该从size_t的范围内,任意限制等256个字符)

  • 基本操作等标准化,的basename相当于dirname,得到文件扩展名,获取根等。

  • 全部有效的Windows风格的路径和文件名,例如作为\RootedDir/C:\Dir/fooFile\\Computer\Dir/File\\.\C:Foo\./.\Bar:ADS,或\\?\C:\Dir\Escaped:ADS:$DATA

    • 我相信这也应该包括POSIX风格的路径,但如果没有,这些应太

我更喜欢C++,但C也很好。

+0

那么,绝对*不* boost.filesystem。它在非常的句法层面上运行,并且假定路径语法接近于POSIX(例如,扩展是从最后一个点到字符串的末尾)...... – ybungalobill 2012-04-01 17:12:25

+0

@ybungalobill:的确,Boost不起作用。但是对于你的特殊例子:*不是从最后一个点到字符串结尾的扩展吗?或者你的意思是因为它没有考虑像'\ .foo'这样的路径? – Mehrdad 2012-04-01 17:16:18

+3

我认为如果你不想让它成为Windows特定的,你会要求太多。例如,在大多数系统中,过长的路径名不能直接用于句点。您必须手动'chdir'或多次使用'openat'才能到达目标文件。所以即使库没有限制,它返回的路径名也没什么用处。此外,在非Windows系统上,文件没有规范的名称(POSIX有硬链接)... – 2012-04-01 17:20:16

回答