R переместить всю папку в другой каталог - PullRequest
0 голосов
/ 04 октября 2018

Я хотел бы переместить всю папку из одного каталога в другой, это мой код,

folder_old_path = "C:/Users/abc/Downloads/managerA"
path_new = "C:/User/abc/Desktop/managerA"
current_files = list.files(folder_old_path, full.names = TRUE)
file.copy(from = current_files, to = path_new, 
          overwrite = recursive, recursive = FALSE, copy.mode = TRUE)

Однако я получаю эту ошибку msg

Ошибка вfile.copy (from = current_files, to = path_new, overwrite = recursive,: больше «из» файлов, чем «в» файлы

есть идеи, как это исправить? Большое спасибо за вашу помощь!

Ответы [ 3 ]

0 голосов
/ 13 февраля 2019
library(ff)
from <- "~/Path1/"            #Current path of your folder
to   <- "~/Path2/"            #Path you want to move it.
path1 <- paste0(from,"NameOfMyFolder")
path2 <- paste0(to,"NameOfMyFolder")
file.move(path1,path2)

Попробуйте использовать этот маленький код.

0 голосов
/ 23 мая 2019

В Linux вы можете просто:

1) сделать OTHER_DIR, если это необходимо.Если это подкаталог OUTPUT_DIR, то: dir.create(file.path(OUTPUT_DIR, OTHER_DIR), showWarnings = FALSE) setwd(file.path(OUTPUT_DIR, OTHER_DIR))

dir.create() просто напечатает предупреждение, если каталог существует.Если вы хотите увидеть предупреждение, просто удалите showWarnings = FALSE.

Если это просто другой каталог на том же уровне, что и OUTPUT_DIR, тогда:

dir.create(OTHER_DIR)

2) Затем переместите файл (например, если OTHER_DIR находится на том же уровне, что и OUTPUT_DIR):

file.rename("C:/OUTPUT_DIR/file.csv", "C:/OTHER_DIR/file.csv")

0 голосов
/ 04 октября 2018

Похоже, что шаг current_files = list.files(folder_old_path, full.names = TRUE) не нужен.Если мое понимание документации R правильное, то вы можете просто использовать следующее:

folder_old_path = "C:/Users/abc/Downloads/managerA"
path_new = "C:/User/abc/Desktop/managerA"
file.copy(from = folder_old_path, to = path_new, 
          overwrite = recursive, recursive = FALSE, copy.mode = TRUE)

Если это не сработает, то вам придетсясоздайте новый список файлов (переберите current_files и замените folder_old_path на folder_new_path для каждого элемента в списке) и вызовите file.copy для этих:

folder_old_path = "C:/Users/abc/Downloads/managerA"
path_new = "C:/User/abc/Desktop/managerA"
current_files = list.files(folder_old_path, full.names = TRUE)
new_files = # replace folder_old_path with path_new for every file in current_files
file.copy(from = current_files, to = new_files, 
          overwrite = recursive, recursive = FALSE, copy.mode = TRUE)

... thisВсе предполагают (конечно), что существуют и folder_old_path, и path_new, и у вас есть правильные разрешения для них.

На связанной странице есть предостережение / примечание о путях Windows:

Нет гарантии, что эти функции будут обрабатывать относительные пути Windows в форме d:path: вместо этого попробуйте d:./path.В частности, d: не распознается как каталог.Также не поддерживаются \\?\ префиксы (и аналогичные).

...