Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Laufwerksbuchstaben aus WebDAV auslesen

Begonnen von Gockel67, Oktober 26, 2024, 13:28:09

⏪ vorheriges - nächstes ⏩

Debus

Hast Du denn eine eindeutige http Adresse? Vielleicht kann man das ja dann so lösen:

Function:


Function GetDriveLetterByHttpsLink(httpsLink As String) As String
    Dim fso As Object
    Dim drv As Object
   
    Set fso = CreateObject("Scripting.FileSystemObject")
   
    For Each drv In fso.Drives
       
        If InStr(1, drv.ShareName, httpsLink, vbTextCompare) > 0 Then
            GetDriveLetterByHttpsLink = drv.DriveLetter
            Exit Function
        End If
    Next drv
   
    GetDriveLetterByHttpsLink = ""
   
    Set fso = Nothing
End Function



Aufruf: (hier wieder anpassen!!!) ;)

Sub TestGetDriveLetter()
    Dim driveLetter As String
    Dim httpsLink As String
   
      httpsLink = "https://www.meinExample.de"
   
    driveLetter = GetDriveLetterByHttpsLink(httpsLink)
   
    If driveLetter <> "" Then
        Debug.Print "Laufwerksbuchstabe für " & httpsLink & ": " & driveLetter & ":"
    Else
        Debug.Print "Kein passendes Laufwerk gefunden für: " & httpsLink
    End If
End Sub


Versuch macht klug 
Holger

Knobbi38

Hallo Jörg,

kannst du mal bitte kurz erläutern, warum du den Laufwerksbuchstaben ermitteln möchtest? Ich kann darin noch keinen tieferen Sinn erkennen.

Knobbi38

Debus

Hallo Jörg, habe das ohne DriveType bei mir versucht und es hat geklappt. Nur musst Du halt die Verknüpfung eindeutig wissen.

Holger


Gockel67

@knobbi38 Weil sonst der FileCopy-Befehl in meiner Datensicherung fehlschlägt. Fehler 52 Dateiname oder Nummer falsch. Wenn ich den Laufwerksbuchstaben angebe (den ich ja kenne) funktioniert es.

@Debus Deine letzte Lösung werde ich mir am Dienstag anschauen. Vorher komme ich leider nicht mehr dazu.

PhilS

Zitat von: Debus am Oktober 27, 2024, 11:47:01Function GetDriveTypeString(driveType As Integer) As String
Die Dokumentation listet von deinem Beispiel abweichende Werte für DriveType.

Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Debus

Hallo PhilS,

danke, die abweichende Liste war mir gerade nicht geläufig, aber es sollte auch ohne gehen wenn er die Verknüpfung genau kennt.

Aber die Liste werde ich auf jeden Fall mal bei mir abspeichern.

Gruß
Holger

Knobbi38

#21
Hallo Jörg,

ja ok, aber dazu brauchst du doch gar nicht den aktuellen Laufwerksbuchstaben. Weise selber temporär für die Aufgabe einen Laufwerksbuchstaben zu und abschließend hebst du das Mapping wieder auf. Dann bist du vollkommen unabhängig und einen freien Laufwerksbuchstaben wird es wohl immer geben.

Unabhängig davon kannst du dafür auch WinSCP verwenden, denn WebDAV ist nur ein Protokoll, was von WinSCP unterstützt wird.
 
Gruß
Ulrich

Gockel67

Danke an alle Helfer. Im besonderen mal wieder an Holger. Habe das Problem jetzt etwas anders gelöst. Nachdem die DriveList mit den richtigen Zahlen funktioniert verwende ich diese um den Laufwerksbuchstaben zuzuweisen.

Debus

Hallo Jörg,

kennst Du den die Laufwerksbezeichnungen von allen Usern?   Wenn Ja dann frag doch den angemeldeten User ab und weise daraufhin den LW Buchstaben automatisch zu. 


Function GetWindowsUser() As String
    GetWindowsUser = Environ("USERNAME")
End Function


Holger

Gockel67

Hallo Holger,
ich bin doch der einzige User. Aber auf zwei PC. Bei der Datensicherung geht es darum den Datenbestand auf beiden Rechner über ein Netzlaufwerk zu aktualisieren.
Liebe Grüße

Debus

OK, dann kennst Du sicherlich die LW Bezeichnng der beiden Rechner. Wenn hier die LW wieder unterschiedlich sind, dann benutzer den Rechnernamen um die LW Bezeichnung zuzuordnen.



Function GetComputerName() As String
    GetComputerName = Environ("COMPUTERNAME")
End Function



Holger

Gockel67

Hallo Holger,
sorry für die verspätete Antwort. Ich verstehe nicht ganz wie deine letzte Funktion bei meinem Problem helfen soll. Ich wollte doch nur die WebDAV die mit http beginnt automatisch gegen den Laufwerksbuchstaben austauschen.
Liebe Grüße

Debus

Ich dachte, wenn Du an verschiedenen Rechner sitzt, sind da ja, sonst wäre das vorherige ja unsinnig gewesen, unterschiedliche LW Bezeichnungen. Somit könntest Du das anhand des Rechnernamens auch automatisiert zuweisen.

Holger

Knobbi38

Hallo,

der konkrete LW-Buchstabe ist doch vollkommen irrelevant. Ich erinnere nochmal an den Beitrag aus #21.