【问题标题】:Using Process.Start() says permission denied使用 Process.Start() 表示权限被拒绝
【发布时间】:2020-04-26 02:12:51
【问题描述】:

我正在尝试从 c# 打开一个 html 文件。我在 Mac 上尝试过

Process.Start(path);

但它给了我“权限被拒绝”我已经将确切的路径复制并粘贴到谷歌和查找器中,他们都给了我正确的文件。我从管理员帐户运行它。我试过将路径移动到不同的地方,比如桌面,它给出了同样的错误。

然后我尝试了:

new ProcessStartInfo(
            path,
            "--no-first-run")
        { UseShellExecute = false });

我得到同样的错误。怎么了? 只是为了踢,我尝试将路径更改为错误的,它说“错误路径”,所以我知道路径是正确的。

感谢您提供的任何帮助或额外信息。

【问题讨论】:

  • 你不能“执行”一个 HTML,使用“打开你的 HTML 文件”。 (The open command opens a file (or a directory or URL), just as if you had double- clicked the file's icon. If no application name is specified, the default application as determined via LaunchServices is used to open the specified files.)
  • @SushiHangover,但this answer 说您确实可以使用Process.Start(path),甚至在文档中也这样指定。那是怎么回事?
  • 设置 UseShellExecute = true 并重试,因为 Finder 使用 shell 打开 HTML 页面。
  • @Wyck Jon 回答了一个特定问题,该问题仅适用于 Windows 和 .NET Framework。您不能假设它适用于 Mac 和 Mono,因为 UseShellExecute 之类的默认值可能不同。
  • @LexLi,当然,谢谢,当我读到这篇文章时,不知何故没有为我注册。似乎“我在 Mac 上”和“单声道”标签对我来说应该是粗体闪烁的。

标签: c# process mono


【解决方案1】:

使用 UseShellExecute = true 为我解决了这个问题(至少在 mac 上) 感谢@LexLi

【讨论】:

    猜你喜欢
    • 2015-08-30
    • 1970-01-01
    • 2018-07-19
    • 2011-02-27
    • 1970-01-01
    • 2014-05-17
    • 2018-02-05
    相关资源
    最近更新 更多