VB.NETでディレクトリを作成・削除する方法を完全ガイド!初心者でもわかるDirectoryクラス
生徒
「VB.NETで新しいフォルダーを自動で作る方法ってありますか?」
先生
「VB.NETでは、Directoryクラスという道具を使って、フォルダーの作成や削除が簡単にできますよ。」
生徒
「フォルダーのことを『ディレクトリ』と呼ぶんですか?」
先生
「そうです。プログラミングの世界ではフォルダーのことをディレクトリと呼ぶのが一般的です。さっそく、その操作方法を学んでいきましょう!」
1. ディレクトリ(フォルダー)操作の基本概念
パソコンを初めて触る方にとって、ファイルとフォルダーの関係は「書類」と「それを入れる箱」の関係に似ています。プログラミングでデータを整理する際、適切な「箱」を用意することは非常に重要です。VB.NETでは、この箱(ディレクトリ)を操作するためにDirectoryクラスという便利な機能が用意されています。これを使えば、マウスで右クリックして『新規作成』を選ぶ作業を、プログラムに自動でやらせることができます。
ディレクトリ操作をマスターすると、日付ごとに自動でフォルダーを分けてログファイルを保存したり、不要になった古いデータをフォルダーごと一気に片付けたりすることが可能になります。まずは、「箱を作る」という基本から一歩ずつ進めていきましょう。これから紹介するコードは、どれもシンプルで分かりやすいものばかりですので安心してくださいね。
2. 新しいディレクトリを作成するCreateDirectory
ディレクトリを新しく作成するには、Directory.CreateDirectory という命令を使います。使い方はとても簡単で、作りたい場所のパス(住所)を教えるだけです。もし、指定した場所までの途中のフォルダーが存在しなくても、VB.NETが気を利かせて親フォルダーから順番にすべて作成してくれます。これは人間が一つずつ手で作るよりもずっと効率的です。
まずは、一番基本的な作成プログラムを見てみましょう。プログラムの冒頭に Imports System.IO を書くのを忘れないでくださいね。これは「入出力を担当する部署の道具を借ります」という宣言のようなものです。
Imports System.IO
Module Module1
Sub Main()
' 作成したいフォルダーのパスを指定します
Dim folderPath As String = "C:\Practice\NewFolder"
' 指定した場所にフォルダーを作成します
Directory.CreateDirectory(folderPath)
Console.WriteLine("新しいフォルダーを作成しました。")
End Sub
End Module
3. 専門用語の解説:パスと存在確認
ここで、プログラムを理解するために欠かせない用語をいくつか解説しておきます。未経験の方が最初に出会う「壁」を、簡単な言葉で取り除いていきましょう。
- パス (Path):パソコンの中での場所を示す住所のことです。「Cドライブの中のPracticeという箱の中」という風に指定します。
- 存在確認 (Exists):何かをする前に「それは本当にあるかな?」と確かめることです。これを行わないと、無いものを操作しようとしてエラーになることがあります。
- クラス (Class):特定の目的(今回はディレクトリ操作)のための「道具箱」のことです。
例えば、同じ名前のフォルダーが既にあるのに新しく作ろうとしても、CreateDirectory 命令ならエラーにならず、そのまま既存のフォルダーを使い続けてくれます。このように、VB.NETは初心者が失敗しにくいように設計されていますが、基本を知っておくことでより安全なプログラムが書けるようになります。
4. ディレクトリが存在するか確認するExistsメソッド
「フォルダーがある時だけ中身を消す」とか「無い時だけ新しく作る」といった判断をプログラムにさせたい場面があります。そんな時に使うのが Directory.Exists です。これは、指定したパスにフォルダーがあれば「はい(True)」、なければ「いいえ(False)」という答えを返してくれます。
これを使えば、無駄な処理を省いたり、エラーを未然に防いだりすることができます。条件分岐の If 文と一緒に使うのがプログラミングの定番スタイルです。次のコードで、実際にどうやって確認するのかを体験してみましょう。
Imports System.IO
Module Module2
Sub Main()
Dim path As String = "C:\Practice\CheckFolder"
' フォルダーが存在するかチェックします
If Directory.Exists(path) Then
Console.WriteLine("フォルダーは既に存在します。")
Else
Console.WriteLine("フォルダーが見つかりません。")
' 無いので作成します
Directory.CreateDirectory(path)
Console.WriteLine("新しく作成しました。")
End If
End Sub
End Module
5. ディレクトリを削除するDeleteメソッド
いらなくなったフォルダーを削除するには Directory.Delete を使います。これを使うと、大切な「箱」をパソコンから消去することができます。削除には二つのパターンがあります。一つは「中身が空っぽの時だけ消す」方法、もう一つは「中のファイルやフォルダーもろとも全部消す」方法です。
後者の「全部消す」場合は、命令の後に「True(はい、全部消します)」というオプションを付け加えます。このオプションを指定せずに、中にファイルが入っているフォルダーを消そうとすると、安全のためにエラーが出るようになっています。ゴミ箱に入れずに直接消去されるため、この命令を使うときは慎重になりましょう。
Imports System.IO
Module Module3
Sub Main()
Dim targetPath As String = "C:\Practice\OldFolder"
' 削除する前に、念のため存在を確認します
If Directory.Exists(targetPath) Then
' 中身があっても強制的に削除する場合は、第2引数をTrueにします
Directory.Delete(targetPath, True)
Console.WriteLine("フォルダーを中身ごと削除しました。")
Else
Console.WriteLine("削除対象のフォルダーが見つかりませんでした。")
End If
End Sub
End Module
6. 日付を名前にしたフォルダー作成の応用
プログラミングを学ぶと、手動では面倒な作業が楽しくなります。例えば、今日の「20260310」という日付を名前にしたフォルダーを自動で作るプログラムはどうでしょう。これを使えば、毎日の作業成果をきれいに整理整頓できます。VB.NETでは DateTime.Now という命令で現在の日時を取得できます。これをフォルダー名に活用する例を見てみましょう。
文字列の加工と組み合わせることで、「Backup_20260310」といった分かりやすい名前のディレクトリを一瞬で作れるようになります。未経験の方でも、こうした具体的な活用方法を知ることで、プログラミングが自分の生活や仕事をどう便利にしてくれるのかイメージしやすくなるはずです。
Imports System.IO
Module Module4
Sub Main()
' 今日の日付を取得して、文字の形に整えます
Dim todayStr As String = DateTime.Now.ToString("yyyyMMdd")
Dim baseDir As String = "C:\Practice\Backup_" & todayStr
' すでに作られていないか確認してから作成します
If Not Directory.Exists(baseDir) Then
Directory.CreateDirectory(baseDir)
Console.WriteLine("本日のバックアップ用フォルダーを作成:「" & baseDir & "」")
Else
Console.WriteLine("本日のフォルダーは既に作成済みです。")
End If
End Sub
End Module
7. ディレクトリ操作時の注意点とエラー対策
最後に、安全にディレクトリを操作するためのヒントをいくつかお伝えします。パソコンの世界では、時々思い通りにいかないことがあります。例えば「他のソフトがそのフォルダーを開いている最中」だったり、「システム的に保護されている場所」をいじろうとしたりすると、プログラムが怒って止まってしまいます。
これを防ぐためには、まず「自分が操作できる権限がある場所(ドキュメントフォルダーなど)」で練習することをお勧めします。また、削除の命令を出すときは、間違えて大事なシステムフォルダーを指定していないか、二度見するくらい慎重になりましょう。プログラムは忠実に命令に従いますが、間違った命令もそのまま実行してしまいます。一歩一歩、確認しながらコードを書く癖をつけることが、優れたプログラマーへの近道です。