Is there a way to extract the file name from the file full path (part of a file path) without the hassle of manipulating string?
The equivalent in Java would be:
File f = new File ("C:/some_dir/a")
f.getName() //output a
f.getFullAbs开发者_运维问答olutePath() //output c:/some_dir/a
Use
basename("C:/some_dir/a.ext")
# [1] "a.ext"
dirname("C:/some_dir/a.ext")
# [1] "C:/some_dir"
The tidyverse equivalent lives in the fs package. {fs} makes use of libuv under the hood.
library("fs")
path_file("/some/path/to/file.xyz")
#> [1] "file.xyz"
path_dir("/some/path/to/file.xyz")
#> [1] "/some/path/to"
Created on 2020-02-19 by the reprex package (v0.3.0)
@Honeybear. The function that removes the extension from the filename you could use is the function from the {tools} R package
tools::file_path_sans_ext("ABCD.csv")
## [1] "ABCD"
See this post in SO
While trying to find the fastest method to extract a filename from a path in R I found that using sub
with the regex ".*/"
was ~an order of magnitude faster than basename
(if speed is an issue).
files<-paste0("http://some/ppath/to/som/cool/file/",1:1000,".flac")
sub(".*/", "", files,perl = T)
精彩评论