ruby - 创建一个以当前时间为名称的文件夹

标签 ruby windows directory mkdir

我正在尝试用 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/

相关文章:

ruby - 在 Mac OSX 上安装 1.9.3 后显示 Ruby 1.8.7

ruby-on-rails - 如何使用 ruby​​ 在两个新行上拆分文本

windows - 如何在 Windows 上访问 Spark 中的本地文件?

c# - System.File.Info 和字符串 []

PHP exec使用ffmpeg转换目录中的所有文件

linux - 从linux中的某个目录启动shell

ruby-on-rails - 在 Rails 4 的模型/类中定义自定义方法

ruby - R 中 CAS 注册表到 Pubchem cid 标识符的转换

windows - 无法让 RabbitMQ 在 Windows 10 上运行

c# - 无法杀死的进程