Rubrik: Dateisystem · Dateien allgemein | VB-Versionen: VB4, VB5, VB6 | 21.05.04 |
Pfad / Dateiname extrahieren Mit der "GetPathOrFileName"-Funktion kann mann kurzerhand den Pfadnamen oder den Dateinamen aus einem Pfad mit Datei ermitteln. | ||
Autor: Holger Brauwer | Bewertung: | Views: 27.002 |
www.cx4free.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Sobald man in seinem Projekt mit Dateien arbeitet, kommt es häufig vor, dass man aus einer vollständigen Pfadangabe (Pfad+Dateiname) entweder nur den Pfad oder nur den Dateinamen benötigt. Nachfolgende Funktion erledigt das ab sofort für Sie. Übergeben Sie der Funktion den vollständigen Dateinamen und setzen "IsPath" auf True, wenn Sie die Pfadangabe benötigen bzw. auf False, wenn Sie den reinen Dateinamen extrahieren möchten.
' Ermittelt den Pfad oder den Dateinamen aus Pfad+Dateiname Public Function GetPathOrFileName(sFileName As String, _ IsPath As Boolean) As String Dim nPos As Long Dim sPos As Long ' nach dem letzten Backslash suchen ' ab VB6 kann man anstelle der Do..Loop-Schleife ' auch die InStrRev-Funktion nutzen! ' (nPos = InStrRev(sFilename, "\") sPos = 0 Do sPos = InStr(sPos + 1, sFileName, "\") If sPos > 0 Then nPos = sPos Loop Until sPos = 0 ' Wenn der Pfad ermittelt werden soll... If IsPath Then ' Ist im String überhaupt ein Backslash vorhanden? If nPos > 0 Then GetPathOrFileName = Left$(sFileName, nPos) End If Else ' Wenn die Datei ermittelt werden soll... GetPathOrFileName = Mid$(sFileName, nPos + 1) End If End Function
Beispiel für den Aufruf:
Benötigt wird eine Form mit zwei Label-Controls (Label1 und Label2), sowie ein CommandButton (Command1).
Private Sub Command1_Click() Dim sFile As String sFile = "C:\Test\Ordner1\logfile.txt" ' Pfadangabe aus Pfad+Datei ermitteln Label1.Caption = GetPathOrFileName(sPath, True) ' Dateiname aus Pfad+Datei ermitteln Label2.Caption = GetPathOrFileName(sPath, False) End Sub