VB.NETでのファイル名取得とは?方法をご紹介!

- システム
エンジニア - VB.NETでのファイル名取得はどのように行えばよいのでしょうか?
- プロジェクト
マネージャー - ファイルパスからファイル名を取得したり、指定したディレクトリ配下にあるファイル一覧を取得したりできます。
VB.NETでのファイル名取得について
今回は、VB.NETでファイル名を取得する方法について説明します。VB.NETでは、ファイルパスからファイル名を取得したり、指定したディレクトリ配下にあるファイル一覧を取得したりできます。
VB.NETでのファイル名取得に興味のある方はぜひご覧ください。
パスから取得
VB.NETでは、ファイルパスの文字列からファイル名を取得することができます。また、ファイル名だけでなく、拡張子やディレクトリ名も取得することができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
Dim file As String = "C:\test\hoge.txt"
Console.WriteLine("file : " + file)
' ファイル名
Console.WriteLine("GetFileName() : " + System.IO.Path.GetFileName(file))
' ファイル名(拡張子なし)
Console.WriteLine("GetFileNameWithoutExtension() : " + System.IO.Path.GetFileNameWithoutExtension(file))
' ディレクトリ名
Console.WriteLine("GetDirectoryName() : " + System.IO.Path.GetDirectoryName(file))
' 拡張子
Console.WriteLine("GetExtension() : " + System.IO.Path.GetExtension(file))
' ルートディレクトリ
Console.WriteLine("GetPathRoot() : " + System.IO.Path.GetPathRoot(file))
|
実行結果は以下のようになります。
1
2
3
4
5
6
|
file : C:\test\hoge.txt
GetFileName() : hoge.txt
GetFileNameWithoutExtension() : hoge
GetDirectoryName() : C:\test
GetExtension() : .txt
GetPathRoot() : C:\
|
このように、VB.NETではファイルパスの文字列から、ファイル名を取得することができます。
指定パス配下のファイル取得
指定したディレクトリ配下のファイルを取得できます。事前に「C:\test」ディレクトリ配下に何かファイルを格納しておいてください。
下記のサンプルでは「C:\test」ディレクトリに、テキスト1.txt~テキスト3.txtおよび写真1.jpg~写真3.jpgを格納しています。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
|
' ファイル一覧取得
Dim files As String() = System.IO.Directory.GetFiles("C:\test", "*", System.IO.SearchOption.AllDirectories)
' ファイル一覧表示
For Each file As String In files
Console.WriteLine(file)
Next
|
実行結果は以下のようになります。
1
2
3
4
5
6
|
C:\test\テキスト1.txt
C:\test\テキスト2.txt
C:\test\テキスト3.txt
C:\test\写真1.jpg
C:\test\写真2.jpg
C:\test\写真3.jpg
|
ファイル一覧が取得できたことが分かります。
取得結果に対して、先ほど説明したGetFileName()などを行えば、ファイル名だけを取得することができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
|
' ファイル一覧取得
Dim files As String() = System.IO.Directory.GetFiles("C:\test", "*", System.IO.SearchOption.AllDirectories)
' ファイル一覧表示
For Each file As String In files
Console.WriteLine(System.IO.Path.GetFileName(file))
Next
|
実行結果は以下のようになります。
1
2
3
4
5
6
|
テキスト1.txt
テキスト2.txt
テキスト3.txt
写真1.jpg
写真2.jpg
写真3.jpg
|
ファイル名が取得できていることが分かります。
このように、VB.NETでは、Directory.GetFiles()を使用して、指定したディレクトリ配下のファイルを取得できます。
指定パス配下のファイル取得(ワイルドカード検索)
先ほど説明したDirectory.GetFiles()では、検索条件に該当するファイルのみを取得することができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
|
' ファイル一覧取得
Dim files As String() = System.IO.Directory.GetFiles("C:\test", "*.txt", System.IO.SearchOption.AllDirectories)
' ファイル一覧表示
For Each file As String In files
Console.WriteLine(System.IO.Path.GetFileName(file))
Next
|
実行結果は以下のようになります。
1
2
3
|
テキスト1.txt
テキスト2.txt
テキスト3.txt
|
Directory.GetFiles()の第2引数に”*”を指定すると、すべてのファイルを取得します。上のサンプルコードのように、”*.txt”を指定すると、.txtファイルのみを取得します。
検索条件として、”*”だけでなく、”?”も指定できます。
もちろんDirectory.GetFiles(“C:\test”, “テキスト1.txt”, System.IO.SearchOption.AllDirectories)とすることで、該当ファイルをピンポイントで検索することもできます。
指定パス配下のファイル取得(再帰検索)
次に、Directory.GetFiles()の第3引数について説明します。
これは対象ディレクトリのサブディレクトリを検索するか否かを指定するもので、以下が指定できます。
・AllDirectories:サブディレクトリも含めて再帰的に検索
・TopDirectoryOnly:サブディレクトリを含めずに検索
事前に、「C:\test」配下にtest2ディレクトリを作成し、すべてのファイルをtest2ディレクトリに移動しておきます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
Console.WriteLine("---AllDirectories-------------")
' ファイル一覧取得
Dim files1 As String() = System.IO.Directory.GetFiles("C:\test", "*.txt", System.IO.SearchOption.AllDirectories)
' ファイル一覧表示
For Each file1 As String In files1
Console.WriteLine(System.IO.Path.GetFileName(file1))
Next
Console.WriteLine("---TopDirectoryOnly-----------")
' ファイル一覧取得
Dim files2 As String() = System.IO.Directory.GetFiles("C:\test", "*.txt", System.IO.SearchOption.TopDirectoryOnly)
' ファイル一覧表示
For Each file2 As String In files2
Console.WriteLine(System.IO.Path.GetFileName(file2))
Next
Console.WriteLine("------------------------------")
|
実行結果は以下のようになります。
1
2
3
4
5
6
|
---AllDirectories-------------
テキスト1.txt
テキスト2.txt
テキスト3.txt
---TopDirectoryOnly-----------
------------------------------
|
AllDirectoriesを指定すると、サブディレクトリを含めて再帰的に検索しますのでファイルが見つかりますが、TopDirectoryOnlyを指定するとファイルが見つからないことが分かります。
取得結果のソート
VB.NETでは、取得したファイル一覧について、ソートすることができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
' ファイル一覧取得
Dim files As String() = System.IO.Directory.GetFiles("C:\test", "*.txt", System.IO.SearchOption.AllDirectories)
' ファイル一覧表示
For Each file As String In files
Console.WriteLine(System.IO.Path.GetFileName(file))
Next
Console.WriteLine("----------------")
' ファイル一覧の降順ソート
Array.Reverse(files)
' ファイル一覧表示
For Each file As String In files
Console.WriteLine(System.IO.Path.GetFileName(file))
Next
|
実行結果は以下のようになります。
1
2
3
4
5
6
7
|
テキスト1.txt
テキスト2.txt
テキスト3.txt
----------------
テキスト3.txt
テキスト2.txt
テキスト1.txt
|
このように、VB.NETでは、取得結果を降順にソートできることが分かります。
- システム
エンジニア - 指定したディレクトリ配下のファイルを取得できるのですね。
- プロジェクト
マネージャー - 取得したファイルを降順にソートできるなど、ご自身でソースコードを書いてより理解を深めていきましょう。
VB.NETのファイル名取得を理解しよう
VB.NETでは、ファイルパスからファイル名を取得したり、指定したディレクトリ配下にあるファイル一覧を取得したりできます。
ファイルをワイルドカードで検索したり、ディレクトリを再帰的に検索することもできます。ぜひご自身でソースコードを書いて、理解を深めてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


VB.NET新着案件New Job
-
生産管理システムの単体テスト/東京都千代田区/【WEB面談可】/在宅勤務
月給25万~25万円東京都千代田区(東京駅) -
鉄鋼関連・グループ会社システム支援/Oracle/東京都新宿区/【WEB面談可】/在宅勤務
月給26万~26万円東京都新宿区(新宿駅) -
資産運用会社向け残高管理システム運用保守/SQLServer/東京都中央区/【WEB面談可】
月給50万~60万円東京都中央区(銀座駅) -
資産運用会社向け残高管理システム開発のテスター/SQLServer/東京都中央区/【WEB面談可】
月給25万~35万円東京都中央区(銀座駅) -
Web受注システム運用保守/VB.NET/東京都港区/【WEB面談可】
月給50万~60万円東京都港区(品川駅) -
Web受注システム開発のテスター/VB.NET/東京都港区/【WEB面談可】
月給25万~35万円東京都港区(品川駅)