【发布时间】:2015-05-17 09:51:25
【问题描述】:
我在tempdir() 中有一个不同临时路径上的文件列表。这里给出了路径,/tmp/Rtmp9pF0OF 是我的 R 会话的tempdir()。
[1] "/tmp/Rtmp9pF0OF/4fc42cb004a7160951778110/0" "/tmp/Rtmp9pF0OF/4fc42cb004a7160951778110/1"
[3] "/tmp/Rtmp9pF0OF/4fc42cb004a7160951778110/2" "/tmp/Rtmp9pF0OF/4fc42cb004a7160951778110/3"
[5] "/tmp/Rtmp9pF0OF/4fc42cb004a7160951778110/4" "/tmp/Rtmp9pF0OF/4fc42cb004a7160951778110/5"
[7] "/tmp/Rtmp9pF0OF/4fc42cb004a7160951778110/6" "/tmp/Rtmp9pF0OF/4fc42cb004a7160951778110/7"
[9] "/tmp/Rtmp9pF0OF/4fc42cb004a7160951778110/8" "/tmp/Rtmp9pF0OF/4fc42cb004a7160951778110/9"
[11] "/tmp/Rtmp9pF0OF/4fc42cb004a7160951778110/10" "/tmp/Rtmp9pF0OF/4fc42cb004a7160951778110/11"
[13] "/tmp/Rtmp9pF0OF/4fc42cb004a7160951778110/12"
这里给出了我本地目录中的文件名
"1.txt" "2.txt" "3.txt""4.txt" "GSM248238.CEL" "GSM248650.CEL"
"GSM248651.CEL" "GSM248652.CEL" "GSM248653.CEL" "GSM248655.CEL" "GSM248659.CEL" "GSM248660.CEL""GSM248661.CEL"
我想通过将文件名更改为上述向量中给出的名称来操作tempdir() 中的文件路径。说这样的话。
[1] "/tmp/Rtmp9pF0OF/1.txt" "/tmp/Rtmp9pF0OF/2.txt"
[3] "/tmp/Rtmp9pF0OF/3.txt" "/tmp/Rtmp9pF0OF/4.txt"
[5] "/tmp/Rtmp9pF0OF/GSM248238.CEL" "/tmp/Rtmp9pF0OF/GSM248650.CEL"
[7] "/tmp/Rtmp9pF0OF/GSM248651.CEL" "/tmp/Rtmp9pF0OF/GSM248652.CEL"
[9] "/tmp/Rtmp9pF0OF/GSM248653.CEL" "/tmp/Rtmp9pF0OF/GSM248655.CEL"
[11]"/tmp/Rtmp9pF0OF/GSM248659.CEL" "/tmp/Rtmp9pF0OF/GSM248660.CEL"
[13]"/tmp/Rtmp9pF0OF/GSM248661.CEL"
谢谢。
【问题讨论】:
-
如果你只想连接
tempdir()和filenames,你可以使用file.path:file.path(tempdir(), filenames))。 -
@lukeA 是否也包含文件的内容。
-
R 如果我也可以控制随机文件名的生成,那也可以。
-
@lukeA 因为本地目录中的第一个文件的名称是
1.txt,但在临时路径上它会更改为4fc42cb004a7160951778110/0,对于其他文件也是同样的情况。我不能将文件的名称称为1.txt,因为名称1.txt不会在临时路径上退出。所以我想恢复临时路径上的文件名。 -
您似乎创建了临时目录,而不是文件。例如,要将所有文件从当前工作目录复制到临时目录,可以使用
fns <- list.files(getwd(), full.names = TRUE); file.copy(from = fns, to = tempdir()); intersect(basename(fns), list.files(tempdir())) # check。
标签: r filenames filepath tempdir