2016-03-22 7 views
0

Ich benutze ein nicht-Gewinn-Formular-Programm, wo ich den Datei-Explorer öffnen muss und die Datei zurückgeben, die der Benutzer auswählt. Ich verwende Process.Start("explorer.exe", "/select etc"); Datei-Explorer zu öffnen, aber wenn ich eine Datei auswählen, es öffnet nur diese Datei. Gibt es eine Möglichkeit, dass wenn ich die Datei wähle, wird der Dateipfad zu einer Variablen zurückgegeben?Den Namen einer Datei zurückgeben, wenn ich Process.Start verwende

+1

Mögliches Duplikat von [Wie füge ich ein Formular zu einer Konsolenanwendung hinzu, damit der Benutzer eine Datei auswählen kann?] (Http://stackoverflow.com/questions/12553932/how-do-i-add-a-form- to-a-console-app-so-dass-user-can-select-file) – NineBerry

Antwort

3

Ich bin sicher, dass Ihre Vorgehensweise falsch ist. Da die documentation Staaten:

/wählen, öffnet sich ein Fenster Ansicht mit dem angegebenen Ordner, eine Datei oder ausgewählte Anwendung.

So das 10 Befehlszeilenargument sagt nur dem Explorer, den angegebenen Ordner oder die Datei vorzuwählen. Es gibt keine Benutzerauswahl zurück.

Ich empfehle, OpenFileDialog zu verwenden. Sie können diesen Dialog auch verwenden, wenn Ihre Anwendung keine reine Windows Forms App ist. Sie müssen nur auf die benötigten Baugruppen (System.Windows.Forms.dll) und Namespaces (using System.Windows.Forms;) verweisen.

+1

Die 'OpenFileDialog' Klasse liegt auch im' Microsoft.Win32' Namespace, daher ist der Verweis auf 'System.Windows.Forms' unnötig . –

+0

Da dies eine Konsole app ist, ist es besser, nicht die WinForms-Namespace zu verwenden, denke ich. –

+0

Danke für den Hinweis. Ich lese nur msdn, wo sie sagen, 'OpenFileDialog' ist in' System.Windows.Forms' deklariert. Wenn es ohne diese Referenz funktioniert ... schön. –

Verwandte Themen