そこで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')これを例として使用しているだけです