首页 > 解决方案 > R将文件夹识别为文件

问题描述

我在 Dropbox 上有一个文件夹,用于存储我的 R 脚本,以及该文件夹的一个子文件夹,用于存档这些脚本的旧版本。无论出于何种原因,我的 4 个脚本都有一个“.R”扩展名,一个有一个“.r”扩展名。加载和运行时两者都可以正常工作。

我想获取此文件夹中的文件列表,我使用list.files(). 如果我只指定文件夹路径,那么我会得到一个包含 6 个元素的列表:我的 5 个脚本和存档文件夹。

如果我指定pattern = "*.R",那么我会得到具有该文件扩展名的 4 个文件。如果我还指定ignore.case = TRUE,则返回的列表确实包含我的第五个脚本,但出于某种疯狂的原因,存档文件夹再次出现!

为什么一个文件夹显然被识别为扩展名为“*.r”的文件?

标签: rfilefile-io

解决方案


lmoEric都正确地猜到了我的贪婪正则表达式与文件夹匹配,因为它的名称包含一个“r”。我忘记了逃避.,这样做之后问题就解决了。也许更好的是在匹配结束时添加行尾字符“$”(例如*\\.r$)。


推荐阅读