Jak ze ścieżki wyciągnąć nazwę pliku?

przez | 2024-09-15

Czasem zdarza się taka sytuacja, że w zmiennej mamy całą ścieżkę do pliku np. c:\katalog\podkatalog\plik.txt a chcemy wyciągnąć z tego ciągu znaków samą nazwę pliku tj. plik.txt. Jak to zrobić?

Najprościej jest wyciągnąć cały tekst po ostatnim znaku \

Funkcja InStrRev podaje pozycję ostatniego wystąpienia wskazanego podciągu w ciągu znaków. Jeśli funkcja zwróci wartość 0 to znaczy, że w ścieżce nie było ani jednego znaku \ czyli zmienna ze ścieżką albo jest pusta albo zawiera tylko nazwę pliku (bez ściezki). Jeśli funkcja ta zwróci wartość wyższą od 0 to za pomocą funkcji Mid należy wyciągnąć wszystkie znaki od wartości zwróconej przez tę funkcję powiększoną o 1 do końca. Oto przykładowy kod:

Function PobierzNazwePliku(Sciezka As String) As String
    Dim Ret As String
    Dim pos As Long
    
    pos = InStrRev(Sciezka, "\")
    If pos = 0 Then
        Ret = Sciezka
    Else
        Ret = Mid(Sciezka, pos + 1)
    End If
    
    PobierzNazwePliku = Ret
End Function

Sub TestPobierzNazwePliku()
    Dim Sciezka As String
    Dim NazwaPliku As String
    Sciezka = "c:\katalog\podkatalog\plik.txt"
    
    NazwaPliku = PobierzNazwePliku(Sciezka)
    
    MsgBox NazwaPliku, vbInformation
End Sub

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.