【问题标题】:Are there any platforms for which the file separator isn't "/"?有没有文件分隔符不是“/”的平台?
【发布时间】:2010-12-16 10:53:21
【问题描述】:

要以独立于平台的方式创建文件路径,应该使用file.path。这让我有点恼火,例如,

file.path("some dir", "some other dir", "my file")

字符多,可读性差
"some dir/some other dir/my file"

我想知道是否有任何平台会导致第二个版本失败。当然,对于 Linux、Mac 和 Windows,路径分隔符 (.Platform$file.sep) 是 /

是否有任何平台(运行 R)具有不同的 .Platform$file.sep 值?

编辑: Wikipedia list(感谢 darioo)中唯一不使用 / 的当前平台是 OpenVMS、Stratus VOS 和 Symbian。 FAQ on R 声明 R 是为

而开发的

类 Unix、Windows 和 Mac 操作系统系列

因此,这些平台中的任何一个都没有官方支持。我不知道是否有一群黑客在他们的诺基亚手机上运行 R。你能猜出有人在这些系统上使用 R 的概率吗?

【问题讨论】:

  • 可以在 OpenVMS 上运行 R(分隔符是 '.'),但我怀疑你可以轻易放弃这个平台。
  • 当您使用参数化路径时,file.path 更具可读性。比较 file.path(main_path, subfolder, "Analysis 001")paste(main_path, subfolder, "Analysis 001", sep="/")
  • file.path() 可能是在 Mac 经典操作系统(:分隔符)仍受支持时引入的 ...

标签: r cross-platform


【解决方案1】:

这是list of operating systems with their file separators

将其与运行 R 的操作系统列表进行比较,您将获得一个参考列表。

不过,在 99% 的情况下,您可能会偶然发现 /

【讨论】:

  • 很棒的参考@darioo!
【解决方案2】:

\ 是 Windows 中的传统路径分隔符。一些现代 Windows 应用程序,API 处理这两个版本。但旧式仍然是主要的。

【讨论】:

  • R 在 Windows 上也能愉快地处理 / 。感谢上帝,它确实如此。或者实际上感谢 R-core 团队......
  • 在 R 中,您需要使用 / 作为 Windows 中的路径 - 转换为 \ 是在引擎盖下完成的。
  • Windows cmd 行命令通常使用 / 表示开关或标志,使用 \ 作为路径分隔符,因此可能会出现问题。例如shell("copy /a/b c") 将被解释为使用开关 a 和 b 将 c 复制到当前目录(而不是将 \a\b 复制到 c)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-05
相关资源
最近更新 更多