有没有适用于C语言的跨平台文件IO / 路径工具库?

4
有没有实现跨平台路径操作的C库?
一些可以考虑的例子:
- 获取相对路径的绝对路径(不需要文件存在) - 确保目录存在 - 如果不存在,创建文件和给定路径中缺失的任何目录 - 连接路径 - 获取路径的目录部分 - 获取路径的文件名部分 - 还有很多……
当然,这些都有特定于平台的版本,但它们几乎从不完全做同样的事情,导致在平台之间匹配行为时出现混乱。
我指的是C,而不是C++,因此boost不算。如果不存在这样的库,请问是否有平台之间差异的良好来源/示例以及其他有用信息,可以用来编写这样的库?

我很惊讶没有一个标准的。作为来自具有Paths.get("/path/to/myfile.txt")的Java,我感到失望。 - Sridhar Sarnobat
3个回答

4

我知道这是一个比较老的问题,但是我一直在寻找类似的东西,却没有找到。所以我写了一个叫做cwalk参考文献)的东西,为那些仍然觉得它有用的人提供帮助!:-)


非常酷!这是我喜欢看到的回应。 - undefined

3

始终友好的glib家族(GTK+的一部分)至少有一些。

请注意,您所描述的某些函数(例如“从相对路径获取绝对路径”)假定存在当前目录,这通常是通过该解析完成的。它不是一个非常“纯粹”的函数,因为它依赖于外部状态。在Windows中,由于其“分割文件系统”,每个进程甚至有一个卷(例如C:\,如果您有它,则为A:\等)。


谢谢。g_path_get_basenameg_path_get_dirname也是我想要的类型。 - Sridhar Sarnobat

0

我发现Apache Portable Runtime Project (APR),它不仅仅可以进行文件I/O和路径操作等功能,还不像Gnome那样被限制在某个特定的项目中。

另一个有着漂亮API的可移植函数库是CZMQ,其中包含了zfilezsys类,虽然该库本身专注于其他领域。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接