Unlinks (deletes) the file from the filesystem. One should always unlink the file after using it, as is explained in the âExplicit closeâ good practice section in the Tempfile overview:
file = Tempfile.new('foo')
begin
...do something with file...
ensure
file.close
file.unlink # deletes the temp file
endUnlink-before-close
On POSIX systems it's possible to unlink a file before closing it. This practice is explained in detail in the Tempfile overview (section âUnlink after creationâ); please refer there for more information.
However, unlink-before-close may not be supported on non-POSIX operating systems. Microsoft Windows is the most notable case: unlinking a non-closed file will result in an error, which this method will silently ignore. If you want to practice unlink-before-close whenever possible, then you should write code like this:
file = Tempfile.new('foo')
file.unlink # On Windows this silently fails.
begin
... do something with file ...
ensure
file.close! # Closes the file handle. If the file wasn't unlinked
# because #unlink failed, then this method will attempt
# to do so again.
end
Please login to continue.