我想将路径拆分为各个组件,并希望此路径在所有平台上都可以使用。
我知道标题看起来像是一个缺少先前研究的问题,因此我在下面记录了Google查询的结果。
我认为这很容易
strsplit("C:\\Path to\\file", .Platform$file.sep)
,但是文档?.Platform
说:
... [这是在Windows上都与Unix相似的和均为“ /” ...
我能想到的最常见情况是
strsplit("C:\\Path to\\file", "[\\/]")
但是我已经想到一个不起作用的特殊情况:UNC路径(\\server\folder\file
),也许其他平台上还有更多?
this answer使用对dirname
和basename
的重复调用,直到结果不再更改为止。这会更好地处理UNC路径,但并不理想(将"."
作为最后一个元素添加)。到目前为止,这似乎是我最有前途的候选人。
.Platform$file.sep
不包含Windows分隔符“ \”时有什么用?附录:搜索查询
我在Google上搜索了“ r文件路径拆分平台独立的-python”(因为我只有python结果),但是结果表明没有解决方案:
- R:构建文件的路径*(
?file.path
帮助页面)- 按行,平台无关地分割文本文件-堆栈溢出(java)
- File.separator与路径中的斜杠之间的区别-堆栈溢出
- 2高效的设置-高效的R编程(https://csgillespie.github.io/efficientR/set-up.htm)
- (有关MATLAB,Node.js,Perl等的更多结果)
仅搜索堆栈溢出时的结果:
- java-逐行,独立于平台拆分文本文件
- java-路径中的File.separator和斜杠
- r-File.separator。将由file.choose()导入的文件路径保存到R
- r-在R中保存由file.choose()导入的文件路径
- javascript-JavaScript平台独立行分隔符
- java-Java String.Printwriting时拆分-堆栈溢出
- vb.net-有效的文件名检查。最好的方法是什么?
- r-通过git存储库管理本地文件路径的方法是什么...
- c#-如何用三个空行分割文本文件?
- perl-NewLine作为独立于平台的新行。如何在Perl中拆分和连接字符串?