使用dirname指定根目录时未取到路径末尾目录,如何解决?
解决dirname返回父目录而非目标路径的问题
dirname()函数的核心逻辑就是返回给定路径的父目录,所以你传入"/Users/myname/parent_folder/sub_folder"时,它返回上一级的"/Users/myname/parent_folder"是完全符合函数设计的预期行为。
如果你的目标是把"/Users/myname/parent_folder/sub_folder"设为dir$root,直接赋值即可,不需要调用dirname():
dir <- list() dir$root <- "/Users/myname/parent_folder/sub_folder" dir$inp <- normalizePath(paste0(dir$root, "/input")) dir$out <- normalizePath(paste0(dir$root, "/output"))
如果路径是动态获取的(非硬编码场景),可以用tools::file_path_as_absolute()确保拿到目标路径的绝对路径版本:
target_path <- "/Users/myname/parent_folder/sub_folder" dir <- list() dir$root <- tools::file_path_as_absolute(target_path) dir$inp <- normalizePath(paste0(dir$root, "/input")) dir$out <- normalizePath(paste0(dir$root, "/output"))
这样设置后,dir$root就会是你期望的目标文件夹路径,而非它的父目录。
内容的提问来源于stack exchange,提问作者Anjana
相关产品推荐
相关产品推荐

