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