Suchen Sie den Dateinamen aus dem vollständigen Dateipfad

156

Gibt es eine Möglichkeit, den Dateinamen aus dem vollständigen Dateipfad (Teil eines Dateipfads) zu extrahieren, ohne die Zeichenfolge mühsam bearbeiten zu müssen?

Das Äquivalent in Java wäre:

File f = new File ("C:/some_dir/a")
f.getName() //output a
f.getFullAbsolutePath() //output c:/some_dir/a
defoo
quelle

Antworten:

286

Verwenden

basename("C:/some_dir/a.ext")
# [1] "a.ext"
dirname("C:/some_dir/a.ext")
# [1] "C:/some_dir"
mjv
quelle
21
Ich wusste davon basename(), aber dann habe ich es vergessen. Diese Funktionen sollten im Abschnitt "Siehe auch" der Hilfeseiten list.files und file.path erwähnt werden .
Paul Rougieux
6

Das tidyverse Äquivalent lebt im fs- Paket. {fs} nutzt libuv unter der Haube.

library("fs")

path_file("/some/path/to/file.xyz")
#> [1] "file.xyz"

path_dir("/some/path/to/file.xyz")
#> [1] "/some/path/to"

Erstellt am 2020-02-19 durch das reprex-Paket (v0.3.0)

pat-s
quelle