6529|18

90

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

CE下怎么去浏览一个文件夹啊??? [复制链接]

我要在CE里面打开并浏览一个文件夹。。发现下面在PC机上的代码在CE下执行后缺总失败。。
各位有啥好的API提供下啊。。
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb =  _T("explore");
ShExecInfo.lpFile =  NULL;
ShExecInfo.lpParameters =  NULL;
ShExecInfo.lpDirectory =  _T("\\My Documents\\个人");
shExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
BOOL bRet = ShellExecuteEx(&ShExecInfo);
DWORD dwError = GetLastError();
ASSERT(bRet);  // 这里始终返回FALSE

最新回复

问题解决了,记得给别人的分哦  详情 回复 发表于 2009-1-11 13:52
点赞 关注

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
dwError的值是多少?
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
3,说是文件目录不存在,我用ActivSync看了,是有这个文件夹的啊
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

4
 
我试了各个文件夹如_T(".\\")等都是返回3,
ERROR_PATH_NOT_FOUND The specified path was not found.
郁闷啊,不知道咋整了。。
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

5
 
CFILEDialog类不行?
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

6
 
直接试这个:TEXT("\\")
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

7
 
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb =  TEXT("explore");
ShExecInfo.lpFile =  TEXT("\\My Documents");
ShExecInfo.lpParameters =  NULL;//TEXT("\\My Documents");    你这里指定的是工作目录
ShExecInfo.lpDirectory =  NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
BOOL bRet = ShellExecuteEx(&ShExecInfo);
DWORD dwError = GetLastError();
ASSERT(bRet);  // 这里始终返回FALSE
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

8
 
发错了

SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb =  TEXT("explore");
ShExecInfo.lpFile =  TEXT("\\My Documents");
ShExecInfo.lpParameters =  NULL;
ShExecInfo.lpDirectory =  NULL; //TEXT("\\My Documents");    你这里指定的是工作目录
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
BOOL bRet = ShellExecuteEx(&ShExecInfo);
DWORD dwError = GetLastError();
ASSERT(bRet);  // 这里始终返回FALSE
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

9
 
谢谢大家回复。。CFILEDialog类是选择一个文件或另存一个文件用,我是浏览打开一个文件夹,就像双击打开一个目录一样的效果。。

TEXT试了也不行,其实TEXT和_T功能一样都是使用UNICODE的字符格式;
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

10
 
TEXT("explore")更改为TEXT("open");
试试,以前做过,冒似是这样的
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

11
 
explore.exe 最好不是偷懒
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

12
 
好像是“explorer”而不是“explore”吧
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

13
 
jinlingzwp说的对,MSDN上说是不支持explore的,打开文件夹用open是可以的。。
explore.exe和explorer也尝试了下,是不行的,MSDN上没这么说的。。
MSDN上说CE下面只支持lpFile ,lpDirectory不支持始终为NULL;
都按上面做了,还是不行啊,说我的文件不存在。。郁闷。。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

14
 
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb =  TEXT("open");
ShExecInfo.lpFile =  TEXT("\\My Documents");
ShExecInfo.lpParameters =  NULL;
ShExecInfo.lpDirectory =  NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
BOOL bRet = ShellExecuteEx(&ShExecInfo);
DWORD dwError = GetLastError();
ASSERT(bRet);  // 这里始终返回FALSE


你试过这个吗?我这里是可以的(WINCE6.0)

lpVerb在wince6.0里面已经没有了explore,但实际上也可以用

 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 3 楼 crearo 的回复:
我试了各个文件夹如_T(".\\")等都是返回3,
ERROR_PATH_NOT_FOUND The specified path was not found.
郁闷啊,不知道咋整了。。


如果是path not found,试试这个:
  1.     SHELLEXECUTEINFO ShExecInfo = {0};
  2. ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
  3. ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
  4. ShExecInfo.hwnd = NULL;
  5. ShExecInfo.lpVerb =  _T("open");
  6. ShExecInfo.lpFile =  _T("fexplore.exe");
  7. //注意这里是Personal, 不是"个人". 在中文上面, 显示的是"个人",但实际目录是Personal.
  8. //fexplore.exe在显示的时候做了转换,实际上没有"个人"这个目录
  9. ShExecInfo.lpParameters =  _T("\\My Documents\\Personal");
  10. ShExecInfo.lpDirectory =  NULL;
  11. ShExecInfo.nShow = SW_SHOW;
  12. ShExecInfo.hInstApp = NULL;
  13. BOOL bRet = ShellExecuteEx(&ShExecInfo);
复制代码
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

16
 
学习 一下,顺便帮顶
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

17
 
谢谢各位的鼎力相助,终于解决了。。
特别感谢xdkui的代码。。


  1. SHELLEXECUTEINFO ShExecInfo = {0};
  2. ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
  3. ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
  4. ShExecInfo.hwnd = NULL;
  5. ShExecInfo.lpVerb =  _T("open");
  6. ShExecInfo.lpFile =  _T("fexplore.exe"); // 这里为啥这样就可以了啊。找了一堆资料都没提到这个的。。
  7. //注意这里是Personal, 不是"个人". 在中文上面, 显示的是"个人",但实际目录是Personal.
  8. //fexplore.exe在显示的时候做了转换,实际上没有"个人"这个目录
  9. ShExecInfo.lpParameters =  _T("\\My Documents\\Personal");
  10. ShExecInfo.lpDirectory =  NULL;
  11. ShExecInfo.nShow = SW_SHOW;
  12. ShExecInfo.hInstApp = NULL;
  13. BOOL bRet = ShellExecuteEx(&ShExecInfo);
复制代码

 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

18
 
学习了。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

19
 
问题解决了,记得给别人的分哦
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表