如何生成在C独立于操作系统的路径++(How to generate a OS independen

2019-07-29 09:10发布

我有一个目标路径和文件名作为字符串,我想用C ++来连接它们。

有没有办法做到这一点并让Windows或UNIX系统/和\之间的程序/编译器选择?

Answer 1:

如果你想在编译的时候,你当然可以做这样的事情去做

#ifdef WIN32
#define OS_SEP '\\'
#else
#define OS_SEP '/'
#endif

或者你可以只用“/”,事情会工作得很好的窗口(除了解析字符串,并只与工作旧的程序“\”)。 如果显示给用户,这样,它只是看起来很滑稽。



Answer 2:

正如通常的情况一样,升压有一个图书馆,你想要做什么。 这里 “山教程。



Answer 3:

使用“/”内部随处可见。 然后写一个组的其中进口任一形式的路径成使用“/”效用函数。 写一个有系统的具体的ifdef和必要的转换一个“本地路径”功能。 可按需调用。



Answer 4:

一个简单的方法做你问什么是有使用预处理魔法确定平台小(可能是内联)函数( #ifdef WIN32等),并返回适当的分隔符。

答案是有点复杂,因为还有比分隔符其他更显著的差异。 Windows文件系统可以有多个根(C:\ d:\等),而整个FS植根于/在Unix的土地。

最好的建议可能是使用boost::filesystem



文章来源: How to generate a OS independent path in c++