ファイルパスの分解や結合をする方法を記載します。

ファイルパスを結合する

ファイルパスの連結をする

Dim sFilePath1 As String = System.IO.Path.Combine("C:\work\", "myfile.txt")
Dim sFilePath2 As String = System.IO.Path.Combine("C:", "work", "myfile.txt")
Dim sFilePath3 As String = System.IO.Path.Combine("C:\", "work", "myfile.txt")

'2と3は結果が異なる		

 

ファイルパスを分解する

ファイルパスからファイル名を取得する

Dim sFileName1 As String = System.IO.Path.GetFileName("C:\work\myfile.txt")
Dim sFileName2 As String = System.IO.Path.GetFileName("C:\work\myfile")
Dim sFileName3 As String = System.IO.Path.GetFileName("C:\work\myfile\")

'2はmyfileをファイルとみなすが3はディレクトリとみなす		

 

拡張子を含まないファイル名を取得する

Dim sBaseFileName1 As String = System.IO.Path.GetFileNameWithoutExtension("C:\work\myfile.txt")
Dim sBaseFileName2 As String = System.IO.Path.GetFileNameWithoutExtension("C:\work\myfile")

 

拡張子を取得する

Dim sExtension1 As String = System.IO.Path.GetExtension("C:\work\myfile.txt")
Dim sExtension2 As String = System.IO.Path.GetExtension("C:\work\myfile")

 

ルートドライブ名を取得する

Dim sRootDrive As String = System.IO.Path.GetPathRoot("C:\work\myfile.txt")

 

ファイル名を除いたディレクトリ名を取得する

Dim sDirectoryName1 As String = System.IO.Path.GetDirectoryName("C:\work\myfile.txt")
Dim sDirectoryName2 As String = System.IO.Path.GetDirectoryName("C:\work\myfile")

 

拡張子を削除したファイルパスを取得する

Dim sBaseFilePath1 As String = System.IO.Path.ChangeExtension("C:\work\myfile.txt", Nothing)
Dim sBaseFilePath2 As String = System.IO.Path.ChangeExtension("C:\work\myfile", Nothing)

 

格納されているディレクトリのみの名前を取得する

Dim FilePath As String = "C:\work\aaa\bbb\ccc\test.txt"

Dim info As New System.IO.FileInfo(FilePath)
Dim str1 As String = info.Directory.Name
Dim str2 As String = info.Directory.Parent.Name

※ C:\work\myfileの場合myfileはファイル名とみなしますが、 C:\work\myfile\はフォルダとみなします。