如何访问当前平台的文件路径分隔符?

Posted

技术标签:

【中文标题】如何访问当前平台的文件路径分隔符?【英文标题】:How to access the file path separator for the current platform? 【发布时间】:2019-06-05 07:57:51 【问题描述】:

在 Rust 中是否有任何可用的选项来获取特定于平台的文件分隔符?

可以有不同的平台特定分隔符:

let separator = "\\" // Could be this.
let separator2 = "/" // Could be this.
let separator3 = "//" // Could be this.

我看起来像下面这样:

let env_independent_seperator = env::separator()

那么可能用法可以如下:

let folder = "C\\Folder\\Path";
let env_independent_separator = env::separator() // Looking something like this
let file_name = "File.txt";
let full_path = folder+ env_independent_separator + file_name;

Rust 中有 File::separator() 吗?

【问题讨论】:

您也可能更喜欢使用PathBuf 和/或Path 来处理这类事情。尤其是Path.joinPathBuf.push 请注意,您几乎可以在包括 Windows 在内的所有平台上使用 / 作为分隔符。 【参考方案1】:

对于这个问题,应该使用PathbufPath,而不是使用带有分隔符的自定义操作。

Path.join Pathbuf.push

对于特定于平台的分隔符,应使用std::path::MAIN_SEPARATOR

【讨论】:

以上是关于如何访问当前平台的文件路径分隔符?的主要内容,如果未能解决你的问题,请参考以下文章

Matlab - 文件目录路径操作

QDir类及其用法总结

c# 文件操作

python平台跨平台开发

查找不在当前目录中的文件的路径并逐个访问该文件夹中的文件 - Python

AWK的使用