そこでFile
、Ruby のクラスについて調べていました。File
掘り下げていたときに、 が のサブクラスであることを知りましたIO
。私の理解では、IO
オブジェクト (またはFile
オブジェクト) を作成すると、そのファイルに対してバッファーが開かれ、そのファイルを読み書きできるようになります。#close
バッファとは何かを完全には理解していませんが、オブジェクトのメソッドを呼び出すまで開いたままになっているようです。私の理解では、このバッファは、あなたが呼び出した場合でも開かれFile.new
た場合でも開かれますFile.open
(これについて間違っている場合は修正してください)。
File
したがって、次のようなパスやものにクラスを使用したいとします。
f = File.new('spec/tmp/testfile.md')
File.basename(f)
しかし、あなたは決して電話しませんf.close
。このバッファを開いたままにするとメモリリークが発生しますか? ファイルシステムのツリーに対してこれを数百回呼び出すと、深刻な問題が発生しますか?
返信ありがとうございます。
PS代わりに使用できることはわかっています。File.basename('spec/tmp/testfile.md')
これを例として使用しているだけです