我需要在Windows资源管理器窗口中打开以下文件
C:\ Users \ Public \ Documents \ folder1 \ test.txt
到目前为止,使用上述路径打开此文件还可以,我可以照常阅读。
但是,当尝试使用wxExecute((wxChar **)cmd, wxEXEC_ASYNC, NULL);
通过Windows资源管理器打开此文件夹时,其中cmd是上述路径(减去文件),它将打开我的用户文档。
我尝试了各种Windows API函数来获取路径,其中一些功能包括Public Documents具有其自身ID的位置,而这些仍然生成了我已经拥有的路径。我可以为Windows资源管理器提供任何CLI选项,以便它实际上可以打开“公共文档”而无需恢复到“用户文档”文件夹吗?
答案 0 :(得分:1)
未记录,但至少从XP开始,使用以下命令行已在多个Windows版本上工作:
explorer.exe /select,"path-to-open"
请注意逗号,并确保引用路径。该路径可能包含文件名,在这种情况下,该文件将被选中。
(在Windows 10中,使用文件名实际上是一个好主意,因为否则将打开父文件夹并选择指定的子文件夹)
与CreateProcess
,ShellExecute
或system()
或wxWidgets提供的任何舒适度都应该相同。
答案 1 :(得分:1)
首先,为什么将字符串转换为wxChar**
?这只是不对。
第二,您应该首先使用wxLaunchDefaultApplication()而不是“原始” wxExecute()
(FWIW wxLaunchDefaultApplication()
是MSW下ShellExecute()
的直接包装器,而{ {1}}要复杂得多。
答案 2 :(得分:0)
实际上是wxWidgets的wxExec存在问题。将命令转换为ShellExecute可以很好地打开它。潜在的Widgets 2.9.5无法处理Windows 10的伪文件夹和怪异现象。