我正在尝试用 Ruby 编写一个简单的备份脚本,将文件夹复制到名称中带有时间戳的特定目录。 我的代码是(简化):
require 'Fileutils.rb'
time = Time.now
FileUtils.cp_r "C:/somefolder", "D:/somefolder_backup_#{time}"
但我不断得到
`fu_mkdir': Unknown error - mkdir failed (SystemCallError)
如果我只想创建一个包含当前时间的文件夹,也会发生同样的情况:
FileUtils.mkdir "C:/somefolder_#{time}"
这似乎不是权限问题,如果我省略了#{time} - 它会完美运行。
如有任何建议,我们将不胜感激。
最佳答案
我的猜测是您的时间字符串中有一个 Windows 不允许在目录名称中使用的字符(您的代码在我的 Ubuntu 机器上运行良好)。尝试格式化你的时间,让它只是数字,这可能会奏效:
require 'Fileutils.rb'
time = Time.now.strftime("%Y%m%d%H%M%S")
FileUtils.cp_r "C:/somefolder", "D:/somefolder_backup_#{time}"
关于ruby - 创建一个以当前时间为名称的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3971463/