我正在修复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中查看音乐文件是一个怪癖。我最终将此作为缓解措施,给两位用户发了电子邮件,并在帮助文档中提供了说明。
- 打开资源管理器并转到我的应用程序所在的基本目录已搜索文件
- 右键单击文件窗格,然后选择"查看"->"详细信息"
- 选择"自定义此文件夹"并转到"自定义"选项卡。将"优化此文件夹:"下拉选择设置为"常规项目"
- 选中"同时将此模板应用于所有子文件夹"
- 单击"确定"。完成