VB.NETでプログラムを作成していると、フォルダを作成したり、不要になったフォルダを削除したい場面はよくあります。
例えば、次のようなケースです。
- ファイル保存用のフォルダが存在しない場合に自動作成したい
- ログ出力用のフォルダを起動時に用意したい
- 一時フォルダを処理後に削除したい
この記事では、VB.NETでフォルダを作成・削除する基本的な方法を解説します。
VB.NETでフォルダを作成する方法
VB.NETでは、System.IO.Directory クラスを使ってフォルダ操作を行います。
Directory.CreateDirectory を使う
Imports System.IO
Dim folderPath As String = "C:\TestFolder"
Directory.CreateDirectory(folderPath)
Directory.CreateDirectoryに絶対パスを渡してフォルダを作成しています。
このコードを実行すると、指定したパスにフォルダが作成されます。
すでにフォルダが存在していてもエラーにならない
CreateDirectory の便利な点は、すでにフォルダが存在していても例外が発生しないことです。
Directory.CreateDirectory("C:\TestFolder")
- フォルダが存在しない → 新規作成
- フォルダが存在する → 何も起こらない
そのため、事前に存在チェックをしなくても安全に使えます。
フォルダの存在を確認してから作成する方法
明示的に存在チェックを行いたい場合は、Directory.Existsを使います。
If Not Directory.Exists(folderPath) Then
Directory.CreateDirectory(folderPath)
End If
このコードの場合は下記のような動作になります。
- フォルダがなければ作成
- すでにあれば何もしない
Directory.Existsは渡したパスが存在している場合はTrueを返して、存在しない場合にはFalseを返します。
上記ではNotをつけているので、フォルダがない場合に作るようになります。
処理内容を明確にしたい場合はこちらの書き方もおすすめです。
VB.NETでフォルダを削除する方法
フォルダを削除する場合は、Directory.Delete を使用します。
空のフォルダを削除する
Directory.Delete("C:\TestFolder")
この方法では、フォルダの中が空でないと例外が発生します。(System.IO.IOException)
また、フォルダがない場合にも例外が発生します。(System.IO.DirectoryNotFoundException)
中身があるフォルダを削除する方法
サブフォルダやファイルを含むフォルダを削除したい場合は、第2引数に True を指定します。
Directory.Delete("C:\TestFolder", True)
True:中身を含めてすべて削除False(省略時):空フォルダのみ削除
⚠ 元に戻せないため、実運用では注意が必要です。
フォルダ削除前に存在チェックをする
削除時は、存在しないフォルダを指定するとエラーになります。
安全のため、存在チェックを行いましょう。
If Directory.Exists(folderPath) Then
Directory.Delete(folderPath, True)
End If
Directory.Existsでフォルダがあるか確認し、ある場合には削除するようにしています。
例外処理(Try Catch)を使った安全な書き方
ファイルやフォルダ操作では、
権限不足や使用中などでエラーが発生する可能性があります。
Try
Directory.CreateDirectory(folderPath)
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
削除時も同様に Try Catch を使うことで、アプリが強制終了するのを防げます。
よくあるエラーと注意点
エラーと注意点についてです。
アクセス権限がない
C:\直下- システムフォルダ
などは、管理者権限が必要な場合があります。
使用中のフォルダは削除できない
- 開いているファイルがある
- 他のアプリが使用中
といった場合、削除時に例外が発生します。
まとめ
今回はVB.NETでフォルダを作成・削除する方法について確認していきました。
VB.NETでのフォルダ操作は、System.IO.Directory クラスを使えば簡単に行えました。
- フォルダ作成:
Directory.CreateDirectory - 存在確認:
Directory.Exists - フォルダ削除:
Directory.Delete
ファイル操作とセットで使われることが多いため、ファイル操作を行なう場合には一緒に覚えておきましょう。

コメント