【Ruby3.x】Dir::seek()メソッドの使い方
seekメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
seekメソッドは、開いているディレクトリ(フォルダ)の読み取り位置を、指定されたオフセット(位置情報)に変更するメソッドです。これは、一度開いたディレクトリの中からファイルやサブディレクトリの名前(エントリ)を読み込む際に、読み取りを始める場所を任意に設定できることを意味します。
例えば、Dir.openなどでディレクトリを開き、readメソッドでエントリを読み進めた後、再び最初から読み直したい場合や、途中の特定の場所から読み取りを再開したい場合に利用します。現在の読み取り位置はtellメソッドで取得でき、このtellメソッドが返した数値をseekメソッドの引数として渡すことで、その記憶した位置へ戻ることが可能です。これにより、ディレクトリの内容を柔軟に、かつ効率的に操作できるようになります。システムエンジニアの業務では、大量のファイルが格納されたディレクトリを処理する際に、特定の条件でエントリを再検索したり、処理を中断した位置から再開したりする場面で役立ちます。
構文(syntax)
1dir = Dir.new('.') 2offset = dir.tell 3dir.seek(offset) 4dir.close
引数(parameters)
pos
- pos: ファイルポインタを移動させる位置を指定する整数。0はファイルの先頭、
IO::SEEK_CURは現在の位置、IO::SEEK_ENDはファイルの末尾を表す。
戻り値(return)
Integer
Dir.seekは、ディレクトリ内の読み込み位置を指定されたバイト数だけ移動させ、移動後の新しい読み込み位置を返します。