Mac版では起きないのになー
filename = "hoge.txt" File.open(filename, 'w') do |file| File.unlink(filename) end
結果は次の通り。
file_unlink.rb:3:in `unlink': Permission denied - hoge.txt (Errno::EACCES) from file_unlink.rb:3 from file_unlink.rb:2:in `open' from file_unlink.rb:2
他にも、File.rename とか、ファイル自体を操作するとPermissionエラーになる。
原因
そういえば、Windowsって、ファイルをどっかで開いていてファイルを消そうとすると、「ファイルは次のプログラムによって使用されています・・・続行する前にファイルを閉じてください」ってエラーする。原因はこれだ。
修正版はこちら。
filename = "hoge.txt" File.open(filename, 'w') do |file| end File.unlink(filename)
closeしてからでないと、ファイル自体への操作はできないんですね。