You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WinForms WebBrowser控件打开FTP文件夹跳转资源管理器问题求助

WinForms WebBrowser控件FTP文件夹内部跳转解决方案

解决这个问题的核心是拦截WebBrowser默认的FTP文件夹跳转行为,手动接管导航逻辑,具体步骤如下:

  • 给WebBrowser控件绑定Navigating事件,该事件会在导航操作触发前执行,可用于拦截默认行为
  • 在事件处理方法中判断目标URL是否为FTP路径,若是则取消默认跳转,手动在控件内加载目标路径

代码实现

  1. 绑定事件(可在窗体构造函数或Load事件中添加):
webBrowser1.Navigating += WebBrowser1_Navigating;
  1. 实现事件处理逻辑:
private void WebBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
    // 仅处理FTP协议的导航请求
    if (e.Url.Scheme.Equals("ftp", StringComparison.OrdinalIgnoreCase))
    {
        var currentFtpPath = webBrowser1.Url?.AbsolutePath ?? string.Empty;
        // 当目标路径与当前显示路径不同时(双击文件夹的场景)
        if (!e.Url.AbsolutePath.Equals(currentFtpPath, StringComparison.OrdinalIgnoreCase))
        {
            // 取消默认跳转(阻止打开资源管理器)
            e.Cancel = true;
            // 手动在WebBrowser内部加载目标FTP文件夹
            webBrowser1.Navigate(e.Url.ToString());
        }
    }
}

额外提示

可将WebBrowser控件的AllowWebBrowserDrop属性设置为false,避免拖拽操作引发意外的外部跳转。

内容的提问来源于stack exchange,提问作者CodingDude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 18:52:02