Dropbox


Es kann sinnvoll sein, Bilder oder andere Dateien in den lokalen Dropbox-Ordner zu kopieren. Die folgende Funktion ermittelt den Pfad zum lokalen Dropbox-Ordner.

  1. Function DropBoxPfad
  2. ' ermittelt den lokalen Pfad des DropBox-Ordners
  3. ' wird keine Dropbox-Installation gefunden, wird ein leerer String zurück gegeben
  4. ' kgsoft 160802
  5. Dim WshShell
  6. Dim fso
  7. Const ForReading = 1, ForWriting = 2
  8. Dim AppDataPfad
  9. Dim aktOrdner
  10. Dim DropInfo
  11. Dim f
  12. Dim DropInfoText
  13. ' Systemordner Appdata ermitteln
  14. Set WshShell = CreateObject ("WScript.Shell")
  15. Set fso = CreateObject("Scripting.FileSystemObject")
  16. AppDataPfad = WshShell.Environment("Process")("APPDATA")
  17. aktOrdner = Right(AppDataPfad, Len (AppDataPfad) - InStrRev(AppDataPfad, "\",-1, 1))
  18. if aktOrdner <> "AppData" Then ' aktueller Ordner ist Roaming oder Local oder LocalLow
  19. AppDataPfad = Left(AppDataPfad, InStrRev(AppDataPfad, "\",-1, 1)) ' AppDataPfad auf \appdata\ setzen
  20. End If
  21. ' Standort info.json ermitteln
  22. If fso.FileExists(AppDataPfad & "Roaming\Dropbox\info.json") Then
  23. DropInfo = AppDataPfad & "Roaming\Dropbox\info.json"
  24. end If
  25. If fso.FileExists(AppDataPfad & "Local\Dropbox\info.json") Then
  26. DropInfo = AppDataPfad & "Local\Dropbox\info.json"
  27. end If
  28. If fso.FileExists(AppDataPfad & "LocalLow\Dropbox\info.json") Then
  29. DropInfo = AppDataPfad & "LocalLow\Dropbox\info.json"
  30. end If
  31. if DropInfo <> "" Then
  32. ' Ermittlung Dropbox-Pfad aus der info.json
  33. ' Annahme: Pfad steht nach dem String "path" zwischen dem folgenden beiden Anführungszeichen
  34. Set f = fso.OpenTextFile(DropInfo, ForReading)
  35. DropInfoText = f.ReadAll
  36. ' schrittweises Vorgehen, um evtl. individuelle Abweichungen abzufangen
  37. DropInfoText = Right(DropInfoText, Len (DropInfoText) - InStr(1, DropInfoText, "path", 1)-4) 'linken Teil bis path" abschneiden
  38. DropInfoText = Right(DropInfoText, Len (DropInfoText) - InStr(1,DropInfoText, Chr(34), 1)) 'linken Teil bis nächstes " abschneiden
  39. DropBoxPfad = Left(DropInfoText, InStr(1,DropInfoText, Chr(34), 1)-1) 'linken Teil bis nächstes " retten
  40. DropBoxPfad = Replace (DropBoxPfad, "\\", "\") ' doppelte \\ durch einfache \ ersetzen
  41. set fso = nothing
  42. set WshShell = nothing
  43. Else ' keine Dropbox gefunden
  44. set fso = nothing
  45. set WshShell = nothing
  46. DropBoxPfad = ""
  47. End If
  48. End Function