【问题标题】:R: list.files() does not find files in "special folder"R:list.files() 在“特殊文件夹”中找不到文件
【发布时间】:2019-11-21 07:03:59
【问题描述】:

我有以下问题:我想递归地列出给定文件夹中的所有文件。但是这个文件夹包含一个特殊的文件夹,list.files() 无法查看。但是,fs::dir_ls() 能够查看该文件夹。看例子:

> list.files(path, recursive = TRUE)
[1] "???"                               "archive_folders.R"                
[3] "archived_folder/archived_file.txt"
> 
> dir_ls(path, recurse = TRUE)
U:/Eigene Dateien/R/archive_folders/archive_folders.R
U:/Eigene Dateien/R/archive_folders/archived_folder
U:/Eigene Dateien/R/archive_folders/archived_folder/archived_file.txt
U:/Eigene Dateien/R/archive_folders/ааа
U:/Eigene Dateien/R/archive_folders/ааа/archived_file.txt

我正在使用 Windows 7 并查看 aaa 文件夹的属性并没有给出有关问题的提示。所以我的问题是双重的:

  1. 您对aaa 文件夹有何特别之处有任何想法吗?
  2. list.files() 有没有可能找到这个特殊文件夹中的文件?

编辑: 文件夹名称ааа 实际上不是 aaa。听起来很混乱?该文件夹的名称由U+00430 组成,而不是通常的字母a (U+0061)。

【问题讨论】:

  • 您的文件夹名称中可能包含非 ASCII 字母。 R 在 Windows 上使用特殊字符可能有些脆弱
  • 这不太可能。文件夹名称为aaa
  • list.files 说它是“???”的事实表明它只是aaa。文件夹是如何创建的?
  • 嗯,Windows 资源管理器和fs::dir_ls() 显示名称aaa。不幸的是,我不知道该文件夹是如何创建的。

标签: r fs


【解决方案1】:

我遇到了类似的问题。我不知道为什么,但list.files() 根本无法在我以前的计算机上运行。我使用dir() 解决了它。这个函数被加载到基础 R 上。

dir(path, recursive = TRUE)

否则,你可以试试这个,看看改变工作目录是否会改变结果:

setwd(path)
dir(, recursive = TRUE)
list.files(, recursive = TRUE)

至于你关于文件夹的问题,我不知道为什么会这样。

【讨论】:

  • 感谢您的建议。但是dir() 返回的结果与list.files() 相同。我以为这些是别名...?
  • 好吧,那我也不知道。我也不知道dirlist.files 是一样的。
猜你喜欢
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多