在文件夹之间移动文件

问题描述 投票:0回答:6

我想使用 R 将文件从一个文件夹复制/粘贴到 Windows 中的另一个文件夹,但它不起作用。我的代码:

> file.rename(from="C:/Users/msc2/Desktop/rabata.txt",to="C:/Users/msc2/Desktop/Halwa/BADMASHI/SCOP/rabata.tx")

[1] FALSE
r file-io file-copying
6个回答
76
投票

如果您想要一个类似于

file.rename()
的函数,还可以 创建 执行重命名所需的任何目录,您可以尝试这样的操作:

my.file.rename <- function(from, to) {
    todir <- dirname(to)
    if (!isTRUE(file.info(todir)$isdir)) dir.create(todir, recursive=TRUE)
    file.rename(from = from,  to = to)
}

my.file.rename(from = "C:/Users/msc2/Desktop/rabata.txt",
               to = "C:/Users/msc2/Desktop/Halwa/BADMASHI/SCOP/rabata.txt")

42
投票

请注意,

file.rename
实际上会从“from”文件夹中删除文件。如果您只想复制一份并将原件保留在原处,请使用
file.copy


17
投票

使用

file.copy()
fs::file_copy()

file.copy(from = "path_to_original_file",
          to   = "path_to_move_to")

然后您可以使用

file.remove()
删除原始文件:

file.remove("path_to_original_file")

2021-10-08更新:您还可以使用

fs::file_copy()
。我喜欢
{fs}
在 R 中实现一致的文件和目录管理。


5
投票

您可以尝试

filesstrings
库。此选项会将文件移动到目录中。示例代码:

首先,我们创建一个示例目录和文件:

dir.create("My_directory")
file.create("My_file.txt")

其次,我们可以将

My_file.txt
移动到创建的目录
My_directory
中:

file.move("My_file.txt", "My_directory")

0
投票

您在第二个分机中缺少“t”字母。试试这个:

file.rename(from="C:/Users/msc2/Desktop/rabata.txt",to="C:/Users/msc2/Desktop/Halwa/BADMASHI/SCOP/rabata.txt").

此外,尝试一下

file.copy()
功能也是值得的。它是专门为复制文件而不是重命名而设计的。


0
投票
fs::file_move("oldfile.txt", "some/other/existing/directory/newfile.txt")
© www.soinside.com 2019 - 2024. All rights reserved.