You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下用R生成多层目录结构CSV并统计最终子目录

解决方案:提取5层目录结构并生成统计用CSV

核心思路

用list.dirs()仅获取目录(默认不包含文件),筛选出刚好5层的子目录,拆分路径为gen1到gen5列,最后导出CSV。

完整代码

# 1. 设置根目录路径(Windows下用双反斜杠或正斜杠)
root_dir <- "C:/your_target_directory"

# 2. 获取所有子目录完整路径(仅目录,无文件)
all_dirs <- list.dirs(path = root_dir, recursive = TRUE, full.names = TRUE)

# 3. 筛选出第5层级(gen5)的目录
# 先计算根目录的层级数
root_level_count <- length(strsplit(root_dir, "/|\\\\")[[1]])
# 仅保留相对于根目录深度为5的目录
gen5_dirs <- all_dirs[sapply(all_dirs, function(dir_path) {
  length(strsplit(dir_path, "/|\\\\")[[1]]) == root_level_count + 5
})]

# 4. 拆分路径为gen1到gen5的列
dir_parts_list <- lapply(gen5_dirs, function(dir_path) {
  path_parts <- strsplit(dir_path, "/|\\\\")[[1]]
  # 提取根目录之后的5个层级
  path_parts[(root_level_count + 1):(root_level_count + 5)]
})

# 转为数据框并设置列名
dir_df <- as.data.frame(do.call(rbind, dir_parts_list), stringsAsFactors = FALSE)
colnames(dir_df) <- paste0("gen", 1:5)

# 5. 导出为CSV(支持中文目录)
write.csv(dir_df, "gen5_directory_stats.csv", row.names = FALSE, fileEncoding = "UTF-8")

关键说明

  • list.dirs()默认只返回目录,完全避开文件,不会因文件过多导致崩溃
  • 用"/|\\\\"拆分路径,同时兼容Windows的反斜杠和正斜杠格式
  • 若根目录是磁盘根(如C:/),代码会自动适配层级计算
  • 导出CSV时指定fileEncoding="UTF-8",避免中文目录乱码

内容的提问来源于stack exchange,提问作者guppieregina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 22:45:39