c# Geräte anzeigen

OP #7431083
Lesenswert?

hallo,

1
           DriveInfo[] allDrives = DriveInfo.GetDrives();

zeigt u.a. USB-Sticks an, aber nicht den Speicher meines Smartphones, der als "Gerät" per usb an den pc angeschlossen und im explorer sichtbar ist.

Wie greife ich über den PC auf den Speicher des Smartphones zu?

danke für Unterstützung

#7431164
Lesenswert?

Karl K. schrieb:

1
           DriveInfo[] allDrives = DriveInfo.GetDrives();

zeigt u.a. USB-Sticks an, aber nicht den Speicher meines Smartphones, der als "Gerät" per usb an den pc angeschlossen und im explorer sichtbar ist.

Wie greife ich über den PC auf den Speicher des Smartphones zu?

Das geht so nicht. MTP (media transfer protocol)-Devices werden unter Windows nicht als normale Laufwerke verwaltet. Die erscheinen nur im im Explorer in etwa so, als wären es welche.

Dementsprechend gibt es im Shell-API die entsprechende Unterstützung dafür. Dabei handelt es sich allerdings um native COM-Objekte. Ob es einen .Net-Wrapper dafür gibt, das weiß ich leider nicht. Ich vermute allerdings stark: wird es geben...

OP #7431625
Lesenswert?

der word-macro-aufzeichner ergibt für den Pfad "Dieser PC\KINGKONG MINI2\SD-Karte\kmv":

1
Sub Makro68()
2
'
3
' Makro68 Makro
4
'
5
'
6
    Documents.Open FileName:= _
7
        "C:\Users\karl\AppData\Local\Microsoft\Windows\INetCache\Content.MSO\9360BC6C.tmp" _
8
        , ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
9
        PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
10
        WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
11
        wdOpenFormatAuto, XMLTransform:="", Encoding:=1252
12
    Selection.EscapeKey
13
    Selection.EscapeKey
14
'    ActiveWindow.Close
15
End Sub

in c# umgesetzt

1
string dir = @"C:\Users\karl\AppData\Local\Microsoft\Windows\INetCache\Content.MSO\";
2
            if (Directory.Exists(dir))
3
            {
4
                string[] files = Directory.GetFiles(dir);
5
                foreach (var file in files)
6
                {
7
                    FileInfo info = new FileInfo(file);
8
                    listBox2.Items.Add(info.Name);
9
                }
10
            }

Damit bekomme ich Dateien wie folgt angezeigt:

C:\Users\karl\AppData\Local\Microsoft\Windows\INetCache\Content.MSO\3D70D199.dat

Hat vielleicht och jemand eine Idee hierzu? Was ist INetCache?

#7431629
Lesenswert?

Karl K. schrieb:

Hat vielleicht och jemand eine Idee hierzu? Was ist INetCache?

Dateien, die per MTP auf dem Handy erreichbar sind, sind keine "echten" Dateien am PC. Normale Anwendungen können die nicht öffnen. Darum werden die auf einen temporären Ort umkopiert, dann kriegt die Applikation die Kopie zum damit Arbeiten, und ggfs. wird die Datei beim Beenden der Applikation wieder zurück auf Handy geschoben.

Wo dieser temporäre Pfad genau liegt, ist ein Implementationsdetail, auf das du dich nicht verlassen solltest: Geh den offiziellen Weg.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren