Process.Start for ftp:// 提示应用

Process.Start for ftp:// prompts for app

我正在编写将从我们公司的 ftp (ftp://...) 开始下载的代码,但是在使用 Process.Start("ftp://..."); Windows 时会提示我需要一个应用程序来打开它(我正在使用 Windows 10)。如果我使用 Process.Start("http://www.google.com"); 它不会提示。如何避免此提示并仅将用户导航到 ftp URL?

Windows 知道如何处理以 http 开头的 URL:打开默认网络浏览器并浏览到 URL。但是,它 本身 不知道如何处理以 ftp.

开头的 URL

当您使用 Process.Start 时,可以将它想象成 运行从 Windows 中的 "run" 行执行命令。您通常需要为 运行 指定一个可执行文件,并且任何附加信息——即可执行文件的参数——出现在 路径或可执行文件名称之后。

在这种情况下,我会说您只想启动 Internet Explorer 并将您的 URL 作为参数提供给它:

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

编辑: 要回答有关使用默认浏览器的问题,请参阅 this SO answer 如何获取默认浏览器的路径: