因此,我的任務是構建一個 Excel 電子表格,對帶有各種嵌套檔案夾和檔案的驅動器進行編目。這
我知道可能有一個命令來獲取檔案資訊,我可以將其分解為這些列。
uj5u.com熱心網友回復:
如果您有完整的路徑和檔案名,那么您可以遍歷它并將其決議為這些列。您可以通過以下方式獲取更多檔案資訊file.info:
files <- c("I:/Administration/Budget/2015-BUDGET DOCUMENT.xlsx",
"I:/Administration/Budget/2014-2015 Budget/BUDGET DOCUMENT.xlsx")
file_info <- list(length = length(files))
for (i in seq_along(files)){
fullpath <- dirname(files[i])
fullname <- basename(files[i])
file_ext <- unlist(strsplit(fullname, ".", fixed = T))
file_meta <- file.info(files[i])[c("size", "mtime")]
path <- unlist(strsplit(fullpath, "/", fixed = T))[-1]
file_info[[i]] <- c(file_ext, file_meta, fullpath, path)
}
l <- lapply(file_info, `length<-`, max(lengths(file_info)))
df <- as.data.frame(do.call(rbind, l))
names(df) <- c("filename", "extension", "size", "modified", paste0("sub", 1:(ncol(df) - 4)))
如果您沒有這些檔案,您可以使用list.files()with遞回搜索驅動器recursive = T。
uj5u.com熱心網友回復:
除了將目錄拆分為子目錄之外,對問題鏈接(Stibu 的回答)中的函式進行調整可能會有所幫助。
rfl <- function(path) {
folders <- list.dirs(path, recursive = FALSE, full.names = FALSE)
if (length(folders)==0) {
files <- list.files(path, full.names = TRUE)
finfo <- file.info(files)
Filename <- basename(files)
FileType <- tools::file_ext(files)
DateModified <- finfo$mtime
FullFilePath <- dirname(files)
size <- finfo$size
data.frame(Filename, FileType, DateModified, FullFilePath, size)
} else {
sublist <- lapply(paste0(path,"/",folders),rfl)
setNames(sublist,folders)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/339994.html
標籤:r
下一篇:填充R向量中的小時-分鐘間隙
