What is the best way to create an empty file in Ruby?
Something similar to the Unix command, touch:
touch file.txt
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.
Just an example:
File.open "foo.txt", "w"
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.
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") {}
And also, less advantageous, but very brief:
`touch file.txt`