楚新元 | All in R

Welcome to R Square

用 R 自动整理不同类型的文件

楚新元 / 2021-10-15


这里我们先分别创建 3 个 Excel 和 Word 文档作为示例数据,然后实现两类型的文件分别放在 xlsx 和 docx 文件夹内。

# data 文件夹下创建示例文件
dir.create("data")
x = outer(1:3, c("xlsx", "docx"), FUN = paste, sep = ".")
file.create(paste0("./data/", x))

# 编写整理路径下文件的函数
tidy_file = \(path) {
  # 获取文件后缀
  path %>% 
    list.files() %>% 
    tools::file_ext() %>% 
    unique() -> file_ext
  # 根据后缀建立文件夹
  file_ext %>% 
    paste0("./data/", .) %>% 
    fs::dir_create()
  # 根据文件类型移动文件
  for (i in file_ext) (
    path %>% 
      fs::dir_ls(glob = paste0("*.", i)) %>% 
      fs::file_move(paste0(path, "/", i))
  )
}

# 整理给定文件夹
tidy_file("./data")