r-移动和复制多个文件



我将拥有源路径的列表&excel中的目标路径,

我如何移动这些文件

目标
C:\users/desk/1/a.pdf C:\users/desktop/2
C:/users/desk/1/b.pdf C:/users/sdesktop/3
C:/users/desk/1/abb.pdf C:/users/sdesktop/56

复制文件,可以使用file.copy。这接受单个目录的矢量,或文件路径的矢量作为目标,并将文件复制到新目录/路径。

由于目标列仅包含目录路径,因此需要为新文件指定完整路径(包括文件名(。为此,可以使用file.pathbasename将原始文件名(在source中(连接到新目录(destination(。

df = data.frame(
source = c('C:/users/desk/1/a.pdf', 'C:/users/desk/1/b.pdf', 'C:/users/desk/1/abb.pdf'),
destination = c('C:/users/desktop/2', 'C:/users/desktop/3', 'C:/users/desktop/56')
)
file.copy(from = df$source, to = file.path(df$destination, basename(df$source)))

移动文件,可以使用file.rename

file.rename(from = df$source, to = file.path(df$destination, basename(df$source)))

注意1:file.rename只能在同一驱动器上的位置之间移动文件时工作。要在驱动器之间移动文件,可以使用file.copyfile.remove在复制后删除原始文件。如果这样做,您应该小心不要在复制操作失败时删除文件,例如:

file.move <- function(from, to, ...) {
# copy files and store vector of success
cp <- file.copy(from = from, to = to, ...)
# remove those files that were successful
file.remove(from[cp])
# warn about unsuccessful files
if (any(!cp)) {
warning(
'The following files could not be moved:n', 
paste(from[!cp], collapse = 'n')
)
}
}
file.move(from = df$source, to = file.path(df$destination, basename(df$source)))

注意2:这都是假设您已使用read.csvdata.table::fread(对于.csv文件(或readxl::read_excel(对于.xls.xlsx文件(读取excel数据

相关内容

  • 没有找到相关文章

最新更新