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 end
Unlink-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.