![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Relative Pfadangaben in absolute ändern |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|||||||||||||||||||||
![]() |
![]() |
Wenn man Dateipfade zusammensetzt oder, wie im Beispiel des C:\Temp\UV1\..\UV2\UUV2\..\Datei.txt Um diese Pfadangabe in einen absoluten Pfad zu korrigieren, kann man auf das API PathCanonicalize zurückgreifen, das genau diese Änderungen vornimmt: Private Declare Function PathCanonicalize Lib "shlwapi.dll" Alias "PathCanonicalizeA" _ (ByVal pszBuf As String, _ ByVal pszPath As String) As Long Das Einbinden des API gestaltet sich ziemlich einfach, da es nur den Pfad als Parameter erwartet und das Ergebnis in
einen Puffer schreibt. Function api_PathCanonicalize(sPath As String) As String Dim strPuffer As String ' Leerstring zur Aufnahme des Ergebnisses anlegen strPuffer = String(1024, vbNullChar) PathCanonicalize strPuffer, sPath ' Ergebnisstring kürzen api_PathCanonicalize = StripTerminator(strPuffer) End Function Function StripTerminator(sInput As String) As String ' vbNullChar im String abschneiden Dim lPos As Long lPos = InStr(1, sInput, vbNullChar) If lPos > 0 Then StripTerminator = Left$(sInput, lPos - 1) Else StripTerminator = sInput End If End Function Beispiel: Sub test() Dim strPath As String strPath = "C:\Test\.\Temp\Test1\..\..\Test2\UV1" MsgBox api_PathCanonicalize(strPath) 'ergibt: C:\Test\Test2\UV1 End Sub |
![]() |
![]() |
Besucher: 1 online | 38 heute | 2947 diesen Monat | 1640961 insgesamt | Seitenaufrufe: 94 | ![]() |
Letzte Änderung: 24.06.2006 | ![]() |
© 2001-14 Christian Freßdorf | ![]() |
Wenn wir sterben - du, ich - soll nicht am Ende ein Fragezeichen stehen, sondern einfach ein Punkt. Wir haben in der Kürze der Zeit Zeit genug, wenn wir sie uns schenken. |
powered by phpCMS and PAX |