c# - FTP ://prompts for app 的 Process.Start

标签 c# ftp process.start

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

最佳答案

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

当您使用Process.Start时,请将其想象为从Windows中的“运行”行运行命令。您通常需要指定要运行的可执行文件,并且任何附加信息(即可执行文件的参数)出现在路径或可执行文件名称之后。

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

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

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

关于c# - FTP ://prompts for app 的 Process.Start,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38834644/

相关文章:

c# - Process.Start() 对于 *.jpg 文件失败

c# - 无法连接到远程 WCF 服务 - SecurityNegotiationException

c# - 如何从 JavaScript 调用代码隐藏函数?

c# - 模式匹配 blob 名称到具有输入绑定(bind)的函数变量

c# - 如何从 C#、Process.Start ("shutdown"关闭)在 Windows XP 中不起作用

c# - Process.Start(/* pdf 路径 */) 不适用于 Windows 8 上的 Adob​​e Reader

c# - 如何在 c# winform 应用程序中保存/加载数据库?

java - 只取 ".jpg"(Android)

linux - SVN Unknown FS 类型(导入项目)

java - 无法使用 Apache Commons FTPClient 访问 FTP 服务器上的子文件夹