【问题标题】:Copy files from few directories从几个目录复制文件
【发布时间】:2014-06-23 10:28:38
【问题描述】:

我正在尝试创建一个代码,将所有文件夹/文件从现有文件夹复制到另一个文件夹(原始文件夹包含文件和更多包含文件/文件夹的文件夹...)

我的想法是做这样的事情:

files <- list.files (Dir.origen)

for (i in files)
{  
  if (!file.info (paste(Dir.origen, i, sep = "/"))$isdir) 
    file.copy (paste(Dir.origen, i, sep = "/"), Dir.dest)
  else dir.create (paste(Dir.dest,i,sep = "/"))
}

并在else 语句中插入相同的for 循环,并在其中插入更多循环。

我的问题是是否有办法复制整个目录。

每次我在 RStudio 中创建新项目时,我都对获取此代码感兴趣。

当 RStudio 为一个空项目创建一个新目录时,我的目标是用我需要的所有内容填充这个目录。

【问题讨论】:

  • 为什么不使用system()?例如,请参阅this answer
  • @zx8754,不幸的是,R 语言是我“知道”的唯一一种语言,所以在开始学习另一种可能需要我更多时间的可能性之前,我已经询问过是否有 R 解决方案来解决这个问题.
  • 这个答案可能对你有用:stackoverflow.com/a/2384621/3730796
  • 感谢您的 cmets,它帮助我找到了正确的研究方向。我在答案中发布了一个工作代码。

标签: r file directory rstudio


【解决方案1】:

我找到了答案,比看起来要容易:

Dir.origen2 <- gsub("/","\\\\", Dir.origen) # Directiories must use backslashes
Dir.dest2 <- gsub("/","\\\\", Dir.dest)

comando <- paste0 ("xcopy ", Dir.origen2, " ", Dir.dest2, " /e /i /y")
system(comando)

/e 用于复制所有目录(包括空目录),/y 用于不要求覆盖文档,/i 用于在 Dir.dest 不存在时创建新目录(我猜)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-03
    • 2017-11-18
    • 2017-11-11
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    相关资源
    最近更新 更多