【问题标题】:Listing files in directory created today列出今天创建的目录中的文件
【发布时间】:2019-07-05 08:37:43
【问题描述】:

在 R 中,我试图列出今天创建的目录中的文件。现在有效的是下面的代码,但该目录是一个不断增长的目录并且有很多文件。这会导致 df 和 df2 部分需要一段时间。

因此,我正在寻找一种仅列出今天创建的文件的方法,因为这些是我想要解压缩到某个位置的文件。所以,基本上结合了dfdf2 中发生的事情。

date <- as.Date(Sys.Date(), origin = "01/01/1970", format= '%d/%m/%Y')
df <- file.info(list.files(sourcefolder, full.names = T)) 
df2 = df %>% 
  rownames_to_column() %>% 
  filter(as.Date(df$ctime, format = '%d/%m/%Y')==date)

【问题讨论】:

  • 尝试使用df2 &lt;- rownames(df)[as.Date(df$ctime) == Sys.Date()]。有帮助吗?
  • 感谢您的评论,它确实部分起作用(它将数据框转换为一个值),但这并不是我想要的。我正在寻找一种在 df 部分应用过滤器的方法,所以我不需要 df2 部分。
  • 你可以把两者结合起来吧? file.info(list.files(sourcefolder, full.names = TRUE)) %&gt;% rownames_to_column() %&gt;% filter(as.Date(ctime) == Sys.Date()) ?
  • 是的,这似乎使它更快一些,非常感谢!另外,我开始相信我想到的解决方案是不可能的,因为这将涉及循环论证,所以这会发生!

标签: r list date filter zip


【解决方案1】:

你可以把这两个步骤结合起来使用

library(dplyr)
library(tibble)

list.files(sourcefolder, full.names = TRUE) %>% 
     file.info() %>%
     rownames_to_column() %>% 
     filter(as.Date(ctime) == Sys.Date())

如果您的sourcefolder 中有太多文件,请尝试使用list.files 中的pattern 参数缩小它们,这样您就只有您需要的文件,这将有助于加快此过程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多