问题描述
我在Windows 10上使用以下目录结构。
C:
├── my-R-working-directory/
├── excel01.xlsx
├── excel02.xlsx
├── nested-folder-A
| ├── excel03.xlsx
└── nested-folder-B
└── excel04.xlsx
我可以使用以下命令直接在工作目录中列出所有Excel文件:
getwd()
#> "C:/my-R-working-directory"
list.files("path/of/folder",pattern = "\\.xlsx$",full.names = TRUE)
#> [1] "C:/my-R-working-directory/excel01.xlsx
#> [2] "C:/my-R-working-directory/excel02.xlsx
我可以为pattern
参数使用什么正则表达式来列出所有嵌套一级的Excel文件?换句话说,我只想查看nested-folder-A
和nested-folder-B
中的Excel文件,它们分别是excel03.xlsx
和excel04.xlsx
(以及文件夹中任何其他深一层)。
我的想法是使用您在下面看到的内容,但是它返回character(0)
,我认为这意味着我的正则表达式是错误的:
list.files("path/of/folder",pattern = "\\\\.xlsx$",full.names = TRUE)
#> character(0)
我拿了在工作目录中查找的pattern = "\\.xlsx$"
,并尝试上一层,即pattern = "\\\\.xlsx$"
。尝试失败。正确的方法是什么?
解决方法
如果您查看了recursive
中的list.files()
参数,则可以查看较低目录中的文件。与pattern = "\\.xlsx$"
结合使用将匹配所有递归目录中的Excel文件。
list.files("path/of/folder",pattern = "\\.xlsx$",full.names = TRUE,recursive = TRUE)
如果您要创建特定于级别的递归列表文件,此answer可能会有所帮助。