Ich versuche, einen Ordner im Explorer mit einer ausgewählten Datei zu öffnen.
Der folgende Code erzeugt eine Ausnahme für nicht gefundene Dateien:
System.Diagnostics.Process.Start(
"explorer.exe /select,"
+ listView1.SelectedItems[0].SubItems[1].Text + "\\"
+ listView1.SelectedItems[0].Text);
Wie kann ich diesen Befehl in C # ausführen lassen?
quelle
Wenn Ihr Pfad Kommas enthält, funktioniert das Setzen von Anführungszeichen um den Pfad, wenn Sie Process.Start (ProcessStartInfo) verwenden.
Bei Verwendung von Process.Start (Zeichenfolge, Zeichenfolge) funktioniert dies jedoch NICHT. Es scheint, als würde Process.Start (Zeichenfolge, Zeichenfolge) tatsächlich die Anführungszeichen in Ihren Argumenten entfernen.
Hier ist ein einfaches Beispiel, das für mich funktioniert.
quelle
Nur mein Wert von 2 Cent. Wenn Ihr Dateiname Leerzeichen enthält, dh "c: \ Meine Datei enthält Leerzeichen.txt", müssen Sie den Dateinamen mit Anführungszeichen umgeben, da der Explorer sonst davon ausgeht, dass die anderen Wörter unterschiedliche Argumente sind ...
quelle
Samuel Yang Antwort stolperte mich, hier ist meine 3 Cent wert.
Adrian Hum hat recht, stellen Sie sicher, dass Sie Ihren Dateinamen in Anführungszeichen setzen. Nicht weil es keine Leerzeichen verarbeiten kann, wie zourtney betont hat, sondern weil es die Kommas (und möglicherweise andere Zeichen) in Dateinamen als separate Argumente erkennt. So sollte es aussehen, wie Adrian Hum vorgeschlagen hat.
quelle
filePath
dies nicht enthalten"
ist. Dieses Zeichen ist auf Windows-Systemen anscheinend illegal, auf allen anderen (z. B. POSIXish-Systemen) zulässig. Sie benötigen also noch mehr Code, wenn Sie portieren möchten.Die Verwendung
Process.Start
aufexplorer.exe
mit der/select
Argument funktioniert seltsamerweise nur für Pfade mit einer Länge von weniger als 120 Zeichen.Ich musste eine native Windows-Methode verwenden, damit sie in allen Fällen funktioniert:
quelle
Verwenden Sie "/select,c:\file.txt"
Beachten Sie, dass anstelle von Leerzeichen ein Komma nach / select stehen sollte.
quelle
Sie müssen die zu übergebenden Argumente ("/ select etc") in den zweiten Parameter der Start-Methode einfügen.
quelle
quelle
Der wahrscheinlichste Grund dafür, dass die Datei nicht gefunden wird, ist der Pfad mit Leerzeichen. Beispielsweise wird "explorer / select, c: \ space space \ space.txt" nicht gefunden.
Fügen Sie einfach doppelte Anführungszeichen vor und nach dem Pfad hinzu, z.
oder machen Sie dasselbe in C # mit
quelle
Es mag ein bisschen übertrieben sein, aber ich mag Convenience-Funktionen, also nimm diese:
Dies ist die Erweiterungsfunktion, die ich als <string> verwende. Quote ():
quelle