有没有一种不必操作字符串就能从文件全路径(文件路径的一部分)中提取文件名的方法?
Java 中相应的方法是:
File f = new File ("C:/some_dir/a")
f.getName() //output a
f.getFullAbsolutePath() //output c:/some_dir/a
使用
basename("C:/some_dir/a.ext")
# [1] "a.ext"
dirname("C:/some_dir/a.ext")
# [1] "C:/some_dir"
tidyverse的中文对应物位于fs软件包中。{fs}在底层使用libuv。
library("fs")
path_file("/some/path/to/file.xyz")
#> [1] "file.xyz"
path_dir("/some/path/to/file.xyz")
#> [1] "/some/path/to"
本示例由 reprex package (v0.3.0) 生成于2020年2月19日
@Honeybear。 你可以使用{tools} R包中的函数来删除文件名中的扩展名。
tools::file_path_sans_ext("ABCD.csv")
## [1] "ABCD"
参见此篇回答
".*/"
的sub
比basename
快大约一个数量级。files<-paste0("http://some/ppath/to/som/cool/file/",1:1000,".flac")
sub(".*/", "", files,perl = T)
basename()
函数,但后来就忘了。这些函数应该在list.files和file.path的“参见”部分提到。 - Paul Rougieux