フルパスからファイル名・フォルダ名などを得る
1.ファイル名を得る単純な例
FileName = Dir("C:\Windows\System32\User32.dll")
この例は、ファイルが実際に存在する場合のみ有効に動作します。
2.フォルダ名を得る単純な例
FullPath = "C:\Windows\System32\User32.dll" FolderName = Left(FullPath, Len(FullPath) - Len(Dir(FullPath)))
この例は、ファイルが実際に存在する場合のみ有効に動作します。
メモ:VB2002.NET以降ではLeft関数を Strings.Left と書く必要がある場合があります。→文末参照
3.拡張子を除いたファイル名を取得する例
Dim FullPath As String
Dim FileName As String
FullPath = "C:\Windows\System32\User32.dll"
FileName = Dir(FullPath) 'フォルダ名を除いたファイル名を取得(=User32.dll)
If InStr(1, FileName, ".") > 0 Then
'拡張子がある場合は、拡張子を省く
FileName = Left(FileName, InStrRev(FileName, ".") - 1) 'User32
End Ifこの例は、ファイルが実際に存在する場合のみ有効に動作します。
メモ:
・InStrRev関数はVB5以前では使用できません。
・VB.NET 2002以降ではLeft関数を Strings.Left と書く必要がある場合があります。→文末参照
4.参考:拡張子だけを取得する例
Dim FullPath As String
Dim FileName As String
Dim ExtName As String
FullPath = "C:\Windows\System32\User32.dll"
FileName = Dir(FullPath) 'フォルダ名を除いたファイル名を取得(=User32.dll)
If InStr(1, FileName, ".") > 0 Then
'拡張子がある場合は、拡張子を抽出
ExtName = Right(FileName, Len(FileName) - InStrRev(FileName, ".")) 'dll
Else
'拡張子がない場合は空文字をセット
ExtName = ""
End Ifメモ:
・InStrRev関数はVB5以前では使用できません。
・VB.NET 2002以降ではRight関数を Strings.Right と書く必要がある場合があります。→文末参照
では、System.IO.Pathクラスを使うと簡単にパス名の操作ができます。→パスからファイル名・フォルダ名などを得る(VB.NET2002以降)