Ruby 如何重命名目录?
如何在Ruby中重命名目录?Ruby 如何重命名目录?,ruby,file-io,Ruby,File Io,如何在Ruby中重命名目录? 我知道如何重命名单个文件,但不知道如何重命名文件夹 FileUtils.mv旧名称,新名称 查看文件以了解更多信息。重命名将允许您重命名目录: File.rename './my-directory', './my-renamed-directory' 我有点困惑。根据,File.rename只适用于文件而不适用于目录吗?@yoyoyo:它也适用于目录。(将目录视为文件的特例)它拒绝重命名非空目录(ruby 2.2.1)FileUtils可以做到这一点在某些情况下
我知道如何重命名单个文件,但不知道如何重命名文件夹
FileUtils.mv旧名称,新名称
查看文件以了解更多信息。重命名将允许您重命名目录:
File.rename './my-directory', './my-renamed-directory'
我有点困惑。根据,File.rename只适用于文件而不适用于目录吗?@yoyoyo:它也适用于目录。(将目录视为文件的特例)它拒绝重命名非空目录(ruby 2.2.1)
FileUtils
可以做到这一点在某些情况下对文件夹不起作用File.rename
worked.By.chance您是否有一个它不起作用的示例。我很好奇,因为我看不到源代码有什么特别的地方。从我的书中可以看出,对于FileUtils.mv
,如果new\u name
是一个目录,那么old\u name
将被移动到该目录中。这是正确的,就像unix mv命令一样。提供的新名称是一个目录且已存在。但如果是这种情况,rename将抛出一个错误(前提是目录非空)。我很好奇mv什么时候会失败,但重命名会像@miguelSantirso所说的那样起作用。有趣的是,mv在1.9.3中使用了rename。其中一个例子是,File.rename
起作用,而FileUtils.mv
失败的情况是,您尝试使用相同的名称重命名目录,或者(在不区分大小写的文件系统上)使用仅大小写不同的名称重命名目录FileUtils.mv
尝试将目录移动到自身内部,而File.rename
则遵循此操作。
require 'fileutils'
FileUtils.mv sourcedir, newdir