我正在尝试用 R 语言编写一个允许我重命名文件的算法。我想用数字 1,2,3,4,5,... 重命名文件夹中的所有 pdf 文件,并保留 pdf 扩展名。主要困难如下:我的文件夹包含文件和文件夹,这些文件夹包含文件和文件夹等......我希望所有这些子文件夹中的所有 pdf 文件都以从 1 开始的数字命名,直到文件数在这个特定的文件夹中(例如按照字母顺序)!另一个困难:我的文件夹还包含非 pdf 文件!
这是一个示例:(在以下示例中,文件夹 1 包含文件夹 2 和 3 个文件。文件夹 2 包含 4 个文件。)
Folder1 "contains" folder2 "contains" Bzzz.file.R
A.file.txt B.file.pdf
Bla.file.pdf C.file.pdf
C.file.pdf Delta.file.pdf
……应该变成这个……
Folder1 "contains" folder2 "contains" Bzzz.file.R
A.file.txt 1.pdf
1.pdf 2.pdf
2.pdf 3.pdf
无论文件夹的数量是多少“以及文件夹的起始深度”,该算法都应该起作用
如果即使在某些文件夹中已经存在名为 3.pdf 或其他 number.pdf 的文件,这也会起作用,那会更好一些,但实际上我可以在没有这种灵活性的情况下处理!
非常感谢你的帮助 !
我运行了这段代码,但它并不完全有效。如果我只是运行它,我会收到以下错误消息:“if (is.na(pathname)) { 中的错误:参数的长度为零”(我必须从法语翻译此错误消息,因此可能与我们可以从 R 中得到英文的错误消息)。
然后我意识到 d 很奇怪,因为它包含一个名为“。”的目录。在我的文件夹中没有的第一个位置(顺便说一下,您对此有解释吗?!)。
所以我做了 d<-d[-1] 并重新运行大 lapply 我收到此错误消息:
“setwd(d[x]) 中的错误:无法更改工作目录”事实上,第一个文件夹中的文件已重命名,但仅在第一个文件夹中
这里 list.dirs() 给出了什么:
“。” "./3.Sept" "./4.Oct" "./5.Nov" "./6.Dec"
但我只有 4 个文件夹。没有名为“。”的文件夹。!正如我所说,如果我这样做 d<-d[-1] 代码在更改目录时不会成功,因此只有一个文件夹被重命名