{category}

Ruby - ディレクトリ操作

Dir.mkdir

ディレクトリ・ミケーディーアール(入出力

意味 新しいディレクトリ作成


Dir.mkdirとは?

Dir.mkdirメソッドは、新しいディレクトリ(フォルダ)を作成するためのメソッドです。指定したパスに新しいディレクトリを作成します。

Dir.mkdirの具体的な使い方

基本的なディレクトリ作成

new_dir = 'new_project'

begin
  Dir.mkdir(new_dir)
  puts "#{new_dir}ディレクトリを作成しました"
rescue Errno::EEXIST
  puts "#{new_dir}ディレクトリは既に存在します"
end

# ディレクトリ内にファイルを作成
File.write(File.join(new_dir, 'README.md'), '# 新しいプロジェクト\nここにプロジェクトの説明を書きます。')

puts "作成されたファイル:"
puts Dir.glob(File.join(new_dir, '*'))

👇出力結果

new_projectディレクトリを作成しました
作成されたファイル:
new_project/README.md

この例では、'new_project'という名前の新しいディレクトリを作成します。既に同名のディレクトリが存在する場合のエラーハンドリングも行っています。さらに、作成したディレクトリ内にREADME.mdファイルを作成し、最後にディレクトリ内のファイル一覧を表示します。これにより、Dir.mkdirの基本的な使用方法と、作成したディレクトリの活用例を示しています。

パーミッションを指定したディレクトリ作成

require 'fileutils'

new_dir = 'secure_data'

begin
  Dir.mkdir(new_dir, 0700)  # 所有者のみread/write/execute可能
  puts "#{new_dir}ディレクトリを作成しました(パーミッション: 700)"

  # パーミッションの確認
  puts "実際のパーミッション: #{sprintf('%o', File.stat(new_dir).mode & 0777)}"

  # ディレクトリ内にファイルを作成
  File.write(File.join(new_dir, 'secret.txt'), '秘密のデータ')

  # 安全な削除
  FileUtils.rm_rf(new_dir)
  puts "#{new_dir}ディレクトリを削除しました"
rescue Errno::EEXIST
  puts "#{new_dir}ディレクトリは既に存在します"
end

👇出力結果

secure_dataディレクトリを作成しました(パーミッション: 700)
実際のパーミッション: 700
secure_dataディレクトリを削除しました

この例では、'secure_data'という名前の新しいディレクトリを作成し、パーミッションを700(所有者のみread/write/execute可能)に設定しています。作成後、実際のパーミッションを確認し、ディレクトリ内にファイルを作成します。最後に、FileUtils.rm_rfを使用してディレクトリを安全に削除します。これにより、Dir.mkdirでのパーミッション設定と、セキュアなディレクトリ操作の例を示しています。

Dir.mkdirに関するよくある質問

Q. 既存のディレクトリは上書きされる?
A. いいえ、既に同名のディレクトリが存在する場合、Errno::EEXISTエラーが発生します。上書きではなく、エラーハンドリングが必要です。
Q. パーミッションは設定できる?
A. Dir.mkdirの第二引数でパーミッションを指定できます。例: Dir.mkdir('new_folder', 0755) ただし、システムのumaskの影響を受けることに注意してください。
Q. サブディレクトリも同時に作成できる?
A. Dir.mkdirは一度に1つのディレクトリしか作成できません。複数の階層を一度に作成するにはFileUtils.mkdir_pを使用します。

Dir.mkdirが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、RubyのDir.mkdirやFile.read、File.exist?、Dir.chdir、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Rubyを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

File.read

ファイル内容を全て読む

種類: ファイル操作

File.exist?

ファイルの存在確認

種類: ファイル操作

Dir.chdir

作業ディレクトリの変更

種類: ディレクトリ操作

Time

時刻を扱うクラス

種類: 日付と時刻

*=

乗算代入演算子

種類: 演算子