使用fs::dir_ls时如何避免自动拼接当前工作目录路径
问题根因
你遇到的路径拼接异常由两个可修正的错误导致:
- 波浪号
~在R中默认解析为当前登录用户的主目录,你当前的运行用户是user1,因此~/会被解析为/home/R/user1/,而非你预期的/home/R/根路径,这是路径前缀错误的核心原因 - 你代码中拼写了错误的参数
globe,fs::dir_ls的通配符过滤参数正确名称为glob,拼写错误会导致csv过滤规则不生效
修复方案
方案1:直接写绝对路径(最稳妥,不会受运行用户、工作目录变化影响)
file_paths <- fs::dir_ls( path = "/home/R/user2/proj/dev/data", glob = "*.csv", type = "file" )
方案2:使用对应用户的主目录占位符
如果user2是系统合法用户,你可以用~用户名的格式直接指向user2的主目录,配合fs::path_expand做路径解析:
file_paths <- fs::dir_ls( path = fs::path_expand("~user2/proj/dev/data"), glob = "*.csv", type = "file" )
内容的提问来源于stack exchange,提问作者user13467695
相关产品推荐
相关产品推荐

