オーダーメイドコース
icon
icon

Rubyでdirectoryをsearchする方法を現役エンジニアが解説【初心者向け】

初心者向けにRubyでdirectoryをsearchする方法について現役エンジニアが解説しています。directoryとは、ファイルを格納するために使われるフォルダやディレクトリのことです。Rubyでdirectoryをsearchする場合に使うDirクラスのglobメソッドの書き方や使い方について解説します。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Rubyでdirectoryをsearchする方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。

 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Rubyでdirectoryをsearchする方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

目次

 

directoryとは

コンピュータのファイルを扱う上で、整理したり、グループ分けするのに使われます。呼び方は、「ディレクトリ」と呼びます。省略して書くと、「dir」になります。呼び方は「ディアー」であったり、「ディレ」と呼んだりします。

「dir」という文字を見ることがあれば、それはdirectoryのことを意味しています。一般的な呼び方として、浸透しているのは、「フォルダ」という呼び方ですが、意味合いとしては、同じ意味合いになりますので、呼び方が違うだけです。

今回は、「directory」という表現を用います。

[PR] 未経験からWebエンジニアを目指す方法とは

directoryをsearchする方法

Rubyで、directoryをsearchする方法について解説します。まず、Rubyで、directoryを操作するためには、「Dirクラス」を使用します。このDirクラスは、directoryを操作するのに、便利なメソッドを持っています。

directory内を探すには「Dir.globメソッド」を使うだけで、簡単にsearchすることができます。今回は、以下のディレクトリ構成からsearchします

-- animals (カレントディレクトリ)
  -- dog
    -- dog_food.txt
  -- cat
    -- cat_food.txt
  -- rabbit
    -- rabbit_food.txt

 

実際に書いてみよう

では、実際にコードを書いていきます

サンプルコード

# ディレクトリのみをsearch
dir_list = Dir.glob("*/")

# searchしたディレクトリからテキストファイルをsearch
dir_list.each {|dir|
    p Dir.glob(dir + "*.txt")
}

# 特定のファイルをsearch
dir_list.each {|dir|
    p Dir.glob(dir + "dog_food.txt")
}

実行結果

["cat/cat_food.txt"]
["dog/dog_food.txt"]
["rabbit/rabbit_food.txt"]

[]
["dog/dog_food.txt"]
[]

 

まとめ

今回は、Rubyでdirectoryをsearchする方法について解説しました。

ディレクトリやファイルの操作は、難しそうに感じるかもしれませんが、意外と簡単な方法で操作が出来たりもします。

Rubyのドキュメントは、日本語で書かれているので、今回使った「Dirクラス」のRubyドキュメントを見て、さらに理解を深めると、複雑な操作が可能になります。

筆者プロフィール

土井友裕(どいともひろ)

社内エンジニアとして、活動をしています。

扱えるプログラミング言語は、Python、Ruby、Dart(Flutter)、C# 、Java…他 など幅広く経験しております。開発実績としては、大手医療機器メーカーのWEBシステムの開発に従事しておりました。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。