|
Einen Pfadnamen zerlegen Sie - gewissermaßen an seinen
"Sollbruchstellen" - in seine Bestandteile Laufwerk (bzw.
Computername), Pfad, Dateiname mit Erweiterung, Dateiname und
Erweiterung mit der folgenden universellen Prozedur SplitPath.
Sie übergeben ihr einen Pfadnamen und erhalten in den übrigen
Parametern die gewünschten Bestandteile zurück. Da diese Parameter
optional sind, brauchen Sie nur diejenigen vorher dimensionieren und
dann übergeben, die Sie interessieren.
Wenn Sie einen Pfadnamen mit einer Laufwerksangabe übergeben,
wird im Parameter Drive der Laufwerksbuchstabe solo zurückgegeben.
Übergeben Sie einen Netzwerkpfadnamen (UNC-Name), wird in Drive der
Computername zurückgegeben. Eine Prüfung auf die Existenz des
übergebenen Pfadnamens findet nicht statt. Somit kann die Prozedur
auch nicht unterscheiden, ob es sich um den Namen einer Datei oder
eines Ordners handelt. Daher wird als Datei-Bestandteil immer der
Anteil rechts vom letzten Backslash ("\") angesehen und
entsprechend behandelt. Also wird auch der letzte Bestandteil eines
Pfadnamens als Dateiname separiert zurückgegeben, selbst wenn
dieser einen Ordner bezeichnet.
Die in der Prozedur verwendet Funktion InstrRev steht erst seit VB(A)
6 zur Verfügung. In früheren Versionen (VB 4 und
5) können Sie die Funktion InstrRev ( Retourkoutsche)
verwenden.
Public Sub SplitPath(FullPath As String, _
Optional Drive As String, Optional Path As String, _
Optional FileName As String, Optional File As String, _
Optional Extension As String)
Dim nPos As Integer
nPos = InstrRev(FullPath, "\")
If nPos Then
If Left$(FullPath, 2) = "\\" Then
If nPos = 2 Then
Drive = FullPath
Path = ""
FileName = ""
File = ""
Extension = ""
Exit Sub
End If
End If
Path = Left$(FullPath, nPos - 1)
FileName = Mid$(FullPath, nPos + 1)
nPos = InstrRev(FileName, ".")
If nPos Then
File = Left$(FileName, nPos - 1)
Extension = Mid$(FileName, nPos + 1)
Else
File = FileName
Extension = ""
End If
Else
Path = FullPath
FileName = ""
File = ""
Extension = ""
End If
If Left$(Path, 2) = "\\" Then
nPos = InStr(3, Path, "\")
If nPos Then
Drive = Left$(Path, nPos - 1)
Else
Drive = Path
End If
Else
If Len(Path) = 2 Then
If Right$(Path, 1) = ":" Then
Path = Path & "\"
End If
End If
If Mid$(Path, 2, 2) = ":\" Then
Drive = Left$(Path, 1)
End If
End If
End Sub
 |
Die universelle Prozedur SplitPath zerlegt
einen Pfadnamen in seine Bestandteile

|

|