项目需求:从指定链接下载文件,并打开文件目录
下载部分不多描述
打开文件夹使用如下方法:
ShellExecute(Handle,'explore',pchar('D:/test/Drawing'),nil,nil,SW_SHOWNORMAL);
功能实现比较简单,但是当文件越下越多的时候,用户需要按照修改时间排序或者搜索文件名来找到对应的文件,很不方便。
于是我想到每次使用浏览器下载文件的时候,打开文件位置功能会将下载的文件对应的文件夹打开,同时定位到该文件,所以我决定实现这个功能。
结合windows自带的DOS 命令explorer查找命令规则,查到如下命令
explorer /select,文件路径
我使用我的文件路径试了一下,没有出现想要的效果,直接定位到了当前系统登录用户对应的用户目录,定位指向了“我的文档”
我的命令是这样的:explorer /select,D:/test/Drawing/abc.txt
百思不得其解
仔细看别人写的示例,没有什么区别,差就差在路径的使用的是斜杠/,别人使用的是**反斜杠**,我将斜杠换成反斜杠试了一下,果然成功了。
explorer /select,D:\test\Drawing\abc.txt
然后在代码中实现
ShellExecute(Handle,nil,'explorer',pchar('/select,D:\test\Drawing\abc.txt'),nil,SW_SHOWNORMAL);
齐活了!
想要使用 ShellExecute 函数,需要在文件头引用 ShellAPI