Задача
list.files(Path)
возвращает вектор имен файлов в каталоге Path
. Это здорово, но мне нужен вектор коротких имен файлов (SFN). Например, SFN для WageDataFile.csv имеет вид WAGEDA ~ 1.csv (если в каталоге нет другого файла со стеблем "WageDa"). SFN также называется именем файла 8.3.
Желаемое решение
В частности, я надеюсь на функцию, которая будет извлекать SFN из ОС, а не восстанавливать его по выходным данным list.files()
(но методы для восстановления SFN по выходным данным list.files()
также приветствуются).
Код для воспроизводимого случая
Это создаст набор файлов в «E: / FileNameTest» с длинами имен переменных:
setwd("E:/FileNameTest")
library(stringi)
nFiles = 12
minNameLength = 2
maxNameLength = 12
set.seed(1)
FileNames =
stri_rand_strings(nFiles,
length=sample(minNameLength:maxNameLength,nFiles,replace=T),
'[A-Za-z0-9]')
file.create(FileNames)
Вот содержание FileNames
:
[1] "lUizNmvDe7" "GN0Nr" "LTbUBpfn" "6i" "Poe" "mYWm1Tjg"
[7] "TrRF46JWfPuI" "SKe" "FTl5sLqLKTtr" "OmxQ" "iO" "KkCi7F"
Вот список SFN, который мне нужен из этих имен файлов (редактировать: сокращенные имена должны быть во всех заглавных буквах):
[1] "6i" "FTL5SL~1" "GN0Nr" "iO" "KkCi7F" "LTbUBpfn" "LUIZNM~1" "mYWm1Tjg" "OmxQ"
[10] "Poe" "SKe" "TRRF46~1"