在Windows资源管理器中打开“公共文档”文件夹

时间:2019-02-26 13:22:44

标签: c++ windows windows-10 wxwidgets

我需要在Windows资源管理器窗口中打开以下文件

  

C:\ Users \ Public \ Documents \ folder1 \ test.txt

到目前为止,使用上述路径打开此文件还可以,我可以照常阅读。

但是,当尝试使用wxExecute((wxChar **)cmd, wxEXEC_ASYNC, NULL);通过Windows资源管理器打开此文件夹时,其中cmd是上述路径(减去文件),它将打开我的用户文档。

我尝试了各种Windows API函数来获取路径,其中一些功能包括Public Documents具有其自身ID的位置,而这些仍然生成了我已经拥有的路径。我可以为Windows资源管理器提供任何CLI选项,以便它实际上可以打开“公共文档”而无需恢复到“用户文档”文件夹吗?

3 个答案:

答案 0 :(得分:1)

未记录,但至少从XP开始,使用以下命令行已在多个Windows版本上工作:

explorer.exe /select,"path-to-open"

请注意逗号,并确保引用路径。该路径可能包含文件名,在这种情况下,该文件将被选中。

(在Windows 10中,使用文件名实际上是一个好主意,因为否则将打开父文件夹并选择指定的子文件夹)

CreateProcessShellExecutesystem()或wxWidgets提供的任何舒适度都应该相同。

答案 1 :(得分:1)

首先,为什么将字符串转换为wxChar**?这只是不对。

第二,您应该首先使用wxLaunchDefaultApplication()而不是“原始” wxExecute()(FWIW wxLaunchDefaultApplication()是MSW下ShellExecute()的直接包装器,而{ {1}}要复杂得多。

答案 2 :(得分:0)

实际上是wxWidgets的wxExec存在问题。将命令转换为ShellExecute可以很好地打开它。潜在的Widgets 2.9.5无法处理Windows 10的伪文件夹和怪异现象。