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
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:
- 1. Öffnen mit Explorer-Eingabeaufforderungen für Anmeldeinformationen
- 2. WPF für FTP-Schnittstelle
- 3. FTP-Client für Android?
- 4. FileSystemWatcher für FTP
- 5. C# Process.Start() Dialogfeld für BAT-Datei
- 6. FTP für Verio Starter Pack
- 7. Rekursive list.files für FTP-Server
- 8. FTP Mock für .NET Framework
- 9. Dateidialog für FTP-Speicherort öffnen
- 10. Kraft eth1 für FTP-Verbindung
- 11. Pushing to private nuget feed Eingabeaufforderungen für Anmeldeinformationen
- 12. Keine Eingabeaufforderungen für ungesicherte Änderungen im Adobe Creative SDK-Bildeditor
- 13. Interaktive SSH-Eingabeaufforderungen verhindern
- 14. Unterstützt Google App Engine ftp?
- 15. Check For Process.Start Termination
- 16. SAS-BI-Inhalt - Eingabeaufforderungen
- 17. Bash zu automatisieren Beantwortung der Eingabeaufforderungen für Django-Sync für Graphit zu installieren
- 18. Safe Process.Start Implementierung für nicht vertrauenswürdige URL-Strings
- 19. Regex für Urls ohne http, https, ftp
- 20. Vim FTP Plugin für IDE-ähnliches Verhalten
- 21. C# Process.Start - Wie erzwinge WaitForExit
- 22. Process.Start() Identitätswechselproblem
- 23. C# Process.Start-Parameter abgeschnitten
- 24. Process.Start und Dual Monitore
- 25. App für Android-App
- 26. VB.NET Process.Start() stoppt sofort
- 27. System.Net.FTPWebRequest Nicht verfügbar für die uwp App
- 28. Eingabeaufforderungen erscheinen nicht in Chrom
- 29. Process.Start Spielanwendung nicht gestartet?
- 30. Process.Start gibt null zurück
Ok, das macht Sinn. Ist es möglich, den Standardbrowser zum Öffnen der FTP-URL zu verwenden? Oder muss ich einen auswählen? – derekantrican
@derekantrican sehe mein Update. –
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