2016-08-08 4 views
2

Ich schreibe Code, der einen Download von unserer Firma ftp (ftp://...) starten wird, aber wenn ich Process.Start("ftp://..."); Windows verwende, werde ich aufgefordert, eine App zu öffnen (ich bin mit Windows 10). Wenn ich Process.Start("http://www.google.com"); verwende, wird es nicht aufgefordert. Wie vermeide ich diese Eingabeaufforderung und navigiere den Benutzer einfach zur FTP-URL?Process.Start für ftp: // Eingabeaufforderungen für App

Antwort

2

Windows weiß, was mit einer URL zu tun ist, die mit http beginnt: Öffnen Sie den Standardwebbrowser und navigieren Sie zu dieser URL. Allerdings nicht nativ wissen, was mit einer URL zu tun ist, die mit ftp beginnt.

Wenn Sie Process.Start verwenden, denken Sie daran, einen Befehl aus der "run" -Zeile in Windows auszuführen. In der Regel müssen Sie eine ausführbare Datei angeben, die ausgeführt werden soll, und alle zusätzlichen Informationen - d. H. Argumente für die ausführbare Datei - treten nach dem Pfad oder dem Namen der ausführbaren Datei auf.

In diesem Fall würde ich sagen, Sie wollen einfach nur den Internet Explorer starten und Ihre URL als Argument liefern:

var psi = new ProcessStartInfo(Environment.ExpandEnvironmentVariables(@"%ProgramFiles%\Internet Explorer\iexplore.exe"), url); 
var proc = Process.Start(psi); 

EDIT: Ihre Frage über die Verwendung des Standard-Browser zu beantworten, sehen this SO answer über, wie man den Pfad des StandardBrowsers erhält:

+0

Ok, das macht Sinn. Ist es möglich, den Standardbrowser zum Öffnen der FTP-URL zu verwenden? Oder muss ich einen auswählen? – derekantrican

+0

@derekantrican sehe mein Update. –

+0

Für zukünftige Referenz, musste ich auch auf diese Antwort verweisen, um ein funktionierendes Endprodukt zu erhalten: http://stackoverflow.com/a/17599201/2246411 – derekantrican