【问题标题】:Find most recent file in a directory (in Windows System) in R [duplicate]在R中查找目录(在Windows系统中)中的最新文件[重复]
【发布时间】:2018-06-15 06:57:27
【问题描述】:

我在一个目录 (C:\MY_FOLDER\Freeze) 中有几个文件。可以说我有两个文件,前面有日期时间。如下图:

我必须阅读 R 中最新的文件。请帮助我。我试着寻找答案,但到处都是关于 Linux 系统的。 “ctime”和“mtime”在这里不起作用。

【问题讨论】:

  • 您应该包含您尝试过的代码,即使它不能在您的 Windows 系统上运行。
  • 查看file.info(dir('C:/MY_FOLDER?Freeze')) 的输出。将有一列用于修改时间。选择时间最长的行
  • 您能解释一下为什么“mtime”在您的用例中不起作用吗?在您发布的图片中,时间是“Date modified”,意思是“mtime”。
  • @Rohit 或者 file.mtime 更简单,如果 OP 只想要那个值。
  • 我建议file.list(…, full.names = TRUE) %>% extract(which.max(file.mtime(.)))

标签: r


【解决方案1】:

我们可以使用file.infolist.fileslist.files 将列出感兴趣目录中的所有文件,file.info 将提供所有这些文件的详细信息。然后我们在mtime 上使用which.max 获取最近修改的文件,然后获取该文件的相应路径。

df <- file.info(list.files("/path/to/your/directory", full.names = T))
rownames(df)[which.max(df$mtime)]

#[1] "/path/to/your/directory/Interested_file.xlsx"

然后您可以使用任何命令从该路径读取 csv 或 excel。

【讨论】:

  • 这个问题被标记为重复,但我发现这个解决方案比被认为是“原始”帖子的解决方案更有效。谢谢!
  • 你将如何对数据框进行进一步的子集化,比如只使用带有isdir == FALSE 的文件?我试过使用df &lt;- subset(df, isdir == FALSE) 没有成功。
【解决方案2】:

另一种识别目录中最新文件的方法:

tmpshot <- fileSnapshot("/path/to/your/directory")
rownames(tmpshot$info[which.max(tmpshot$info$mtime),])

【讨论】:

  • 有没有办法做到这一点,但使用目录?想知道哪个是最新的?
  • 我和@Mel有同样的问题
猜你喜欢
  • 2021-01-12
  • 2014-07-22
  • 2012-10-06
  • 1970-01-01
  • 2018-05-14
  • 2020-08-21
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
相关资源
最近更新 更多