ファイルパスの分解や結合をする方法を記載します。
ファイルパスを結合する
ファイルパスの連結をする
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\はフォルダとみなします。