Application.GetOpenFilename: Dateiname mit lokalem Pfad
#11
(24.02.2025, 00:09)knobbi38 schrieb: Hallo,

da dein C-Programm keine URL Angabe verarbeiten kann und die anderen Lösungsansätze nicht funktionieren, würde ich ganz pragmatisch die Datei in einen lokalen Ordner verschieben und dann an die DLL übergeben.

Gruß
Knobbi38

Ja, leider scheint es keine elegante Lösung zu geben.

Schade, dass Microsoft hier so ein eigenartiges Verhalten programmiert hat.
Antworten Top
#12
Hallo Jürgen,

vielleicht klappt es hiermit?

laufwerks-pfad-nach-unc-pfad-und-umgekehrt

Gruß, Uwe
Antworten Top
#13
(24.02.2025, 01:40)Kuwer schrieb: Hallo Jürgen,

vielleicht klappt es hiermit?

laufwerks-pfad-nach-unc-pfad-und-umgekehrt

Gruß, Uwe

Hallo Uwe,

leider nicht. Da geht es um UNC-Pfade, was noch einmal etwas anderes ist als URLs. UNC-Pfade würden es auch schon direkt tun, aber eben nicht URLs.

Jürgen
Antworten Top
#14
Zeig mal das fullpath. (parht & name)
dann kann VBA sehr einfach die dateiname herausfiltern.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#15
Moin,

ich würde ganz pragmatisch einfach den gemappten Teil der URL mit Z: ersetzen und die forwardslashes in Backslashes tauschen. 
Viele Grüße 
derHoepp
Antworten Top
#16
(24.02.2025, 11:43)derHoepp schrieb: Moin,

ich würde ganz pragmatisch einfach den gemappten Teil der URL mit Z: ersetzen und die forwardslashes in Backslashes tauschen. 
Viele Grüße 
derHoepp

Das sieht in etwa so aus:

    https://firma.sharepoint.com/sites/99276...OP/mek.dat

Was ich haben will wäre folgendes:

   z:\770_OP\mek.dat

Ich kann natürlich durch Textoperationen " https://firma.sharepoint.com/sites/992764 " durch "z:\ " ersetzen und die Slashes tauschen. Das Ganze soll aber auf allen Rechnern funktionieren. Und da haben die Benutzer vielleicht einen anderen Laufwerkbuchstaben gemappt. Einfach nur Ersetzen hilft also nicht.

Jürgen
Antworten Top
#17
Moinsen,

ich kann nicht genau sagen, ob sich mit WebDAV gemappte Remote-Verzeichnisse mit net use auswerten lassen, aber hilfsweise könntest du mit mit einer shell die Rückgabe von net use auslesen und weiterverarbeiten (hier mal ohne Fehlerbehandlung und nur einfach getestet):

Code:
Option Explicit

Sub testen()
    Debug.Print getDriveLetterFromMappedURL("\\Mapped\Path\To\Remote\Folder")
   
End Sub

Function getDriveLetterFromMappedURL(MappedURL As String)
    Dim netinfo As String
    With CreateObject("wscript.shell")
        netinfo = .exec("cmd.exe /c net use").stdout.readall
    End With
    getDriveLetterFromMappedURL = Right(Split(Filter(Split(netinfo, vbCrLf), MappedURL)(0), ":")(0), 1) & ":"
End Function

Viele Grüße
derHöpp
Antworten Top
#18
Zitat:@derHoepp:
Code:
"\\Mapped\Path\To\Remote\Folder"
Btw.: 
Das ist ein UNC Pfad und keinr URL Angabe.

Leider hat der OP nicht beschrieben, warum die zahlreichen Methoden aus dem Link (#3) nicht funktionieren.
Antworten Top
#19
Moin Ulrich,

Zum Testen hab ich nur UNC zur Verfügung. Ich hatte mir nur gedacht, dass net use trotzdem funktioniert.

Viele Grüße 
derHoepp
Antworten Top
#20
Ohne Fremdsoftware unterstützt Shell "Net USE" keine URL Angaben sondern nur UNC. Somit kann damit auch kein Laufwerk so verbunden worden sein.

Gruß Knobbi38
[-] Folgende(r) 1 Nutzer sagt Danke an knobbi38 für diesen Beitrag:
  • derHoepp
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste