У меня есть набор данных, где первый столбец — это имя файла (в рабочем каталоге), а второй столбец — это каталог, в который я хочу переместить файл. Набор данных data2 выглядит следующим образом:
[,1] [,2]
[1,] "Folder1/subfolder2/subfolder3" "File.Name1"
[2,] "Folder2/subfolder4/subfolder5" "File.Name2"
[3,] "Folder3/subfolder6/subfolder7" "File.Name3"
Я попытался использовать функцию file.copy следующим образом:
file.copy(from=data2[,2], to=data2[,1],
overwrite = TRUE, recursive = FALSE,
copy.mode = TRUE)
За что получаю предупреждения: cannot create file "Folder1/subfolder2/subfolder3", , reason 'No such file or directory'
. Но есть такой каталог. Так что я понятия не имею, в чем может быть проблема.
Поскольку у вас есть несколько файлов для разных мест назначения, вы можете использовать Map
+ file.copy
.
invisible(
Map(file.copy, from = data2[,2], to = data[,1], overwrite = TRUE)
)
Это не работает. Файлы находятся не в соответствующих каталогах.
Аргумент «to» файла file.copy должен включать имя файла, иначе ваш код попытается создать файл «подпапка3». в подпапке2. Предполагая, что вы хотите сохранить имена файлов прежними, должно работать следующее:
file.copy(from=data2[,2], to=file.path(data2[,1], data2[,2]),
overwrite = TRUE, recursive = FALSE,
copy.mode = TRUE)
Я так и думал, но все равно не работает. Ошибок не выдает, но в указанных папках файлов нет.
@Knaciedoo Эта функция по какой-то причине выводит большой логический вектор, содержащий «FALSE» (его длина равна n строк data2).
Это сработало, спасибо!
Убедитесь, что текущий рабочий каталог соответствует вашему мнению.
getwd()
отобразит его, аsetwd
можно использовать для его изменения.