zoukankan      html  css  js  c++  java
  • 使用ShellExecute打开目标文件所在文件夹并选中目标文件

    转载:http://blog.csdn.net/chenlycly/article/details/7366364

    转载:http://bbs.csdn.net/topics/50440550

    ShellExecute很常用,我们可以使用它调用另外一个exe可执行程序,也可以使用它来打开指定的目录或文件。本文主要讨论如何通过ShellExecute来打开目标文件所在文件夹并选中目标文件。

    刚开始尝试用下面的代码实现想要的功能:

    	CString str = _T("E:\TestDir\test.txt"); 
    	ShellExecute( NULL, _T("open"), _T("explorer.exe"), str, NULL, SW_SHOWNORMAL );

    但是没有达到预定的效果,而是直接将指定的文件打开了,我只想打开指定文件所在的目录并选中该文件。通过查阅网上相关话题,应使用如下的代码:

        CString str = _T("/select, E:\TestDir\test.txt");   
        ShellExecute( NULL, _T("open"), _T("explorer.exe"), str, NULL, SW_SHOWNORMAL );  

    当打开指定的目录或文件会使用explorer.exe资源管理器,就需要了解Explorer相关命令的参数了。

    命令格式
       Explorer [/n][/e][[,/root],[path]][[,/select],[path filename]]

       参数说明
      /n表示以“我的电脑”方式打开一个新的窗口,通常打开的是Windows安装分区的根目录。
      /e表示以“资源管理器”方式打开一个新的窗口,通常打开的也是Windows安装分区的根目录。
      /root,[path]表示打开指定的文件夹,/root表示只显示指定文件夹下面的文件(夹),不显示其它磁盘分区和文件夹;[path]表示指定的路径。如果不加/root参数,而只用[path]参数,则可以显示其它磁盘分区和文件夹中的内容。另外,[path]还可以指定网络共享文件夹。
      /select,[path filename]表示打开指定的文件夹并且选中指定的文件,[path filename]表示指定的路径和文件名。如果不加/select参数,则系统会用相应的关联程序打开该文件。如果[path filename]不跟文件名就会打开该文件夹的上级目录并选中该文件夹。(注意:“/select”参数后面的逗号不能丢)

    注意:当路径中包含空格时可能会导致ShellExecute参数解析错误,所以最好是给路径加上双引号!

  • 相关阅读:
    CentOS Grub、BASH 故障、解决方法
    Fail2ban 阻止暴力破解
    Extundelete 数据恢复
    HTTP 状态信息
    LNMP 参数调优 ( 无注释 )
    Mysql 性能优化 ( my.cnf )
    MantisBT 缺陷管理系统
    Zabbix Agent 源码编译安装
    Zabbix 监控 Mysql 状态
    Zabbix 监控 Nginx 状态
  • 原文地址:https://www.cnblogs.com/chechen/p/6733675.html
Copyright © 2011-2022 走看看