利用SHELL的函数快速查找SD卡的目录名

来源:互联网 发布:deps.json 编辑:程序博客网 时间:2024/05/07 23:22
利用SHELL的函数快速查找SD卡的目录名
梁哲恒
 
       PDA的电池一直是一个硬伤,长时间不充电,PDA里保存的内容就丢了。现在还好,新版的操作系统下,很多生产商都提供了FLASH盘来保存重要的数据。但使用SD卡保存数据还是比较多人选择的方案,毕竟存在SD卡上的数据不仅不会丢失,而已也方便不同PDA的数据交换。
       SD卡插入PDA后,一般都以一个目录的形式出现在资源管理器中。开发应用软件时,要保存数据到SD卡,就要先找到代表SD卡的这个目录。而这个目录并不是一个固定的名称,不同的生产商完全可以自己制定。比如HP2110,就是虚拟成一个叫“SD Card”的目录。
       以前,我一般通过注册表查找或直接枚举所有的目录,通过目录属性来判断。虽然可以用,但也很麻烦。最近,我在看SHELL编程时,发现了一个函数:
              BOOL  SHGetAutoRunPath (LPTSTR pAutoRunPath);
个函数是用来查找第一个存储卡上自运行文件的目录路径,英文原文是:This function will search for the first storage card and construct the path that would be used to look for an autorun file。这个函数的参数是一个出参,运行后,系统找到目录并把目录路径放入pAutoRunPath中。如果找到返回TRUE,找不到返回FALSE。
    举例:我在HP2110用该函数时,返回的内容是“/SD Card/2577/autorun.exe”。意思是如果我要让SD卡上自动运行指定的某个程序,就需要制作一个autorun.exe并把它放到“/SD Card/2577”的目录中。看到没有?虽然我不制作自运行程序,但却很容易就知道了这个PDA上SD卡的目录了:SD Card。