有没有一种方法可以从文件完整路径(文件路径的一部分)中提取文件名,而无需操作字符串的麻烦?
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 包于 2020-02-19 创建(v0.3.0)
@Honeybear。 从您可以使用的文件名中删除扩展名的函数是 {tools} R 包中的函数
tools::file_path_sans_ext("ABCD.csv")
## [1] "ABCD"
参见SO中的这篇文章
在尝试找到从 R 中的路径提取文件名的最快方法时,我发现使用 sub
与正则表达式
".*/"
比
basename
快一个数量级(如果速度是一个问题) .
files<-paste0("http://some/ppath/to/som/cool/file/",1:1000,".flac")
sub(".*/", "", files,perl = T)
list.files
,
full.names = FALSE
函数(可以方便地查找与目录中的模式匹配的文件)将删除目录路径。例如,以下将返回不带路径的名称:
list.files(path="directory/to/search", pattern="*.shp", full.names=FALSE)