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

C# Windows Forms中Process.Start()调用报‘拒绝访问’错误求助

解决.NET Core/.NET 5+ WinForms中Process.Start打开文件夹报Access Denied的问题

问题原因

在.NET Core、.NET 5及更高版本的WinForms中,Process.Start(string)的默认UseShellExecute属性值为false,而.NET Framework中该值默认是true。当UseShellExecute=false时,系统会尝试将文件夹路径当作可执行文件直接运行,这显然不符合逻辑,最终触发了误导性的"Access is denied"错误。而控制台应用中默认的UseShellExecute行为和WinForms不同,所以能正常运行。

解决方案

方案1:显式设置UseShellExecute为true

使用ProcessStartInfo明确指定启用Shell执行,让系统通过shell打开文件夹,和.NET Framework的行为保持一致:

var startInfo = new ProcessStartInfo
{
    FileName = @"D:\YourFolderPath", // 替换为你的目标文件夹路径
    UseShellExecute = true
};
Process.Start(startInfo);

或者更简洁的写法:

Process.Start(new ProcessStartInfo(@"D:\YourFolderPath") { UseShellExecute = true });

方案2:直接调用资源管理器打开

直接指定启动explorer.exe并传入文件夹路径,这种方式更直观:

Process.Start("explorer.exe", @"D:\YourFolderPath");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 23:15:53