Creating an empty file in Ruby: “touch” equivalent?

后端 未结 5 1178
心在旅途
心在旅途 2021-01-30 15:28

What is the best way to create an empty file in Ruby?

Something similar to the Unix command, touch:

touch file.txt
相关标签:
5条回答
  • 2021-01-30 15:52

    If you are worried about file handles:

    File.open("foo.txt", "w") {}
    

    From the docs:

    If the optional code block is given, it will be passed the opened file as an argument, and the File object will automatically be closed when the block terminates.

    0 讨论(0)
  • 2021-01-30 15:56

    Just an example:

    File.open "foo.txt", "w"
    
    0 讨论(0)
  • 2021-01-30 16:00

    FileUtils.touch looks like what it does, and mirrors* the touch command:

    require 'fileutils'
    FileUtils.touch('file.txt')
    

    * Unlike touch(1) you can't update mtime or atime alone. It's also missing a few other nice options.

    0 讨论(0)
  • 2021-01-30 16:07

    In Ruby 1.9.3+, you can use File.write (a.k.a IO.write):

    File.write("foo.txt", "")
    

    For earlier version, either require "backports/1.9.3/file/write" or use File.open("foo.txt", "w") {}

    0 讨论(0)
  • 2021-01-30 16:11

    And also, less advantageous, but very brief:

    `touch file.txt`
    
    0 讨论(0)
提交回复
热议问题