代码之家  ›  专栏  ›  技术社区  ›  Lennart

以当前时间为名称创建文件夹

  •  3
  • Lennart  · 技术社区  · 15 年前

    我试图用Ruby编写一个简单的备份脚本,将一个文件夹复制到一个名为timestamp的特定目录。

    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}-它工作得很好。

    2 回复  |  直到 15 年前
        1
  •  9
  •   Daniel Vandersluis    15 年前

    我猜你的时间字符串中有一个字符是Windows不允许出现在目录名中的(你的代码在我的Ubuntu机器上运行良好)。试着格式化你的时间,让它只是数字,这可能会起作用:

    require 'Fileutils.rb'
    time = Time.now.strftime("%Y%m%d%H%M%S")
    FileUtils.cp_r "C:/somefolder", "D:/somefolder_backup_#{time}" 
    
        2
  •  1
  •   Robert Speicher    15 年前

    返回的字符串 Time.now 其中有冒号,这是目录名的非法字符。