我有一个非常复杂的文件夹组织,这是它的简化版本。
|--Folder0 --- Folder0.1
|
home---|--Folder1 --- Folder1.1 --- Folder1.2
|
|--Folder2 --- Folder2.1
Run Code Online (Sandbox Code Playgroud)
我想列出第二级文件夹(Folder0.1、Folder1.1、Folder2.1)中的所有 .xlsx 文件。
非常感谢任何帮助。
请不要想当然地认为文件夹的名称。只是为了简单起见,我这样称呼它们。他们的名字是随机的。
list.files(recursive=)不允许立即限制,我建议三种路径:
获取全部,按文件分隔符(通常为/)拆分并限制列表。
allfiles <- list.files(".", full.names = TRUE, recursive = TRUE)
under5 <- allfiles[ lengths(strsplit(allfiles, "/")) < 6 ]
Run Code Online (Sandbox Code Playgroud)
由于它可能以 开头".",因此您可能需要比您想象的更多的一个。在6这里进行试验以获得您需要的东西。
如果只有几个深度,则手动构建目录列表并recursive完全禁用。
dir1 <- list.dirs(".", recursive=FALSE)
dir2 <- list.dirs(dir1, recursive=FALSE)
dir3 <- list.dirs(dir2, recursive=FALSE)
dir4 <- list.dirs(dir3, recursive=FALSE)
allfiles <- setdiff(list.files(c(dir1, dir2, dir3)), c(dir1, dir2, dir3))
Run Code Online (Sandbox Code Playgroud)
(诚然,尚未经过充分测试,并不出色,但它是一种方法的开始。)
使用system("find . -maxdepth 5 -type f", intern=TRUE)或 类似的方法生成文件名。