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



我正在修复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
  • 视觉工作室2015
  • Windows 10
  • 该程序目前只能识别.wav文件和自定义的基于文本的文件类型

感谢

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

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

最新更新