将目录转换为嵌套列表

时间:2015-11-29 21:37:29

标签: r nested

将目录结构转换为嵌套列表的好方法是什么?我希望每个目录都是一个列表,可以包含单个元素实体(文件)或子列表(其他目录)。

我打算使用list.dirslist.files编写一个递归函数,但是可能还有另一种方法,因为这似乎是一个常见的结构。

## example: make directories and files
## Note: this makes files in a folder called 'test' on your computer
dir.create("test")
for (i in 1:3) dir.create(file.path("test", paste0("sub dir", i)))
dir.create("test/sub dir1/sub sub dir")
writeLines("thing", "test/text.txt")
writeLines("thing1", "test/sub dir1/text.txt")
writeLines("thing2", "test/sub dir1/text1.txt")

## Hoping for a result like this, I guess it could be "" instead of list() for empty directories
res <- list(test=list(
              "text.txt",
              `sub dir1`=list(`sub sub dir`=list(), "text.txt", "text1.txt"),
              `sub dir2`=list(),
              `sub dir3`=list()
))

str(res)
# List of 1
#  $ test:List of 4
#   ..$         : chr "text.txt"
#   ..$ sub dir1:List of 3
#   .. ..$ sub sub dir: list()
#   .. ..$            : chr "text.txt"
#   .. ..$            : chr "text1.txt"
#   ..$ sub dir2: list()
#   ..$ sub dir3: list()

0 个答案:

没有答案