C# - 使用“/ select,<file>”选择音频文件打开资源管理器时出现问题

时间:2016-07-25 22:32:59

标签: c# select windows-explorer

我正在修复c#.net应用中的功能,用户可以右键单击文件名,然后他们将拥有“在资源管理器中打开”选项。当他们点击它时,会打开一个新的资源管理器窗口,并选择该文件。

问题是,如果该功能用于打开音频文件,那么它似乎很少工作。前几次尝试将在资源管理器窗口中显示,没有任何问题。

但是,每隔一段时间,资源管理器窗口会在打开时挂起半秒左右,恢复时不会选择任何文件。如果您然后返回应用程序并在同一文件上再次尝试,则浏览器将打开并选择该文件;没问题。

到目前为止,它似乎对基于文本的文件和目录没有失败。只有音频文件才会出现此问题。

我已经在stackoverflow上尝试了大部分关于“/ select”CL arg的东西,但没有一个解决了这个问题。有什么想法吗?

当前的代码尝试:

void MyFunc(object sender, EventArgs e)
{
    string filePath= "";

    // Code that gets full filepath is here - it has so far always returned a correct path

    if (!string.IsNullOrEmpty(filePath))
    {
        filePath = filePath.Replace(@"/", @"\");

        if (File.Exists(filePath))
        {
            string args = string.Format("/select,\"{0}\"", filePath);

            Process.Start("explorer.exe", args);
        }
    }
}

额外信息:

  • 使用C#.net 5.0
  • visual studio 2015
  • Windows 10
  • 程序目前仅识别.wav文件和基于自定义文本的文件类型。

感谢

1 个答案:

答案 0 :(得分:0)

在与更多人交谈后,我们发现在Explorer.exe中查看音乐文件是一个怪癖。我最终将此作为缓解措施,通过电子邮件发送给几个用户,并在帮助文档中包含说明。

  • 打开资源管理器并转到我的应用程序的基本目录 搜索文件。
  • 右键单击文件窗格,然后选择“查看” - >“详细信息”。
  • 选择“自定义此文件夹”并转到“自定义”选项卡。将“优化此文件夹:”下拉选项设置为“常规项目”。
  • 选中“同时将此模板应用于所有子文件夹”。
  • 点击“确定”。结束。