VB6対応

 

Visual Basic 中学校 > VB6 サンプル >

フルパスからファイル名・フォルダ名などを得る

 

1.ファイル名を得る単純な例

VB6対応 VB.NET2002対応 VB.NET2003対応 VB2005対応 


FileName = Dir("C:\Windows\System32\User32.dll")
 

この例は、ファイルが実際に存在する場合のみ有効に動作します。

 

2.フォルダ名を得る単純な例

VB6対応 VB.NET2002対応 VB.NET2003対応 VB2005対応 

FullPath = "C:\Windows\System32\User32.dll"

FolderName = Left(FullPath, Len(FullPath) - Len(Dir(FullPath)))

この例は、ファイルが実際に存在する場合のみ有効に動作します。

メモ:VB2002.NET以降ではLeft関数を Strings.Left と書く必要がある場合があります。→文末参照

 

.拡張子を除いたファイル名を取得する例

VB6対応 VB.NET2002対応 VB.NET2003対応 VB2005対応

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.参考:拡張子だけを取得する例

VB6対応 VB.NET2002対応 VB.NET2003対応 VB2005対応

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 と書く必要がある場合があります。→文末参照

 


VB.NET2002対応 VB.NET2003対応 VB2005対応 では、System.IO.Pathクラスを使うと簡単にパス名の操作ができます。→フルパスからファイル名・フォルダ名などを得る(VB.NET2002以降)