Я хочу разделить путь на его компоненты и хочу, чтобы это работало на всех платформах.
Я знаю, что заголовок выглядит как вопрос, который не требует предварительного исследования, поэтому я задокументировал результаты запросов Google, которые я сделал ниже.
Я думал, что это легко с
strsplit("C:\\Path to\\file", .Platform$file.sep)
, однако в документации ?.Platform
говорится:
... [это] "/"в обоих Unix-подобных и в Windows ...
Что подходит для общих случаев, о которых я могу думать, это
strsplit("C:\\Path to\\file", "[\\/]")
, но я уже могуВспомните один нерабочий случай: UNC-пути (\\server\folder\file
) и, может быть, есть другие на других платформах?
Существует этот ответ с использованием повторных вызовов dirname
и basename
, пока результат не изменится.Это лучше обрабатывает UNC-пути, но не идеально (добавляет последний элемент "."
).Кажется, это самый многообещающий кандидат, которого я когда-либо встречал.
Вопросы
- Какая польза от
.Platform$file.sep
, если в нем нет разделителя Windows "\"? - Каков канонический способ разбиения пути на его компоненты независимо от платформы на R?
Приложение: Поисковые запросы:
Я сделал поиск в 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 - Split text файл построчно, независимо от платформы
- java - File.separator и косая черта в путях
- r - File.separator.Сохранение пути к файлу, импортированного file.choose () в R
- r - Сохранение пути к файлу, импортированного file.choose () в R
- javascript - Независимый от платформы разделитель JavaScript
- java - Java String.Split во время печати - Переполнение стека
- vb.net - Проверка правильности имени файла.Каков наилучший способ?
- r - Как управлять путями к локальным файлам вне репозитория git ...
- c # - Как разделить текстовый файл на три пустые строки?
- perl - NewLine как независимая от платформы новая линия.Как разбить и объединить строки в Perl?