用FindFirstFile打开的无效句柄(INVALID_HANDLE_VALUE)需要用FileClose来关闭吗

yimi88 2011-08-16 10:06:55
用FindFirstFile打开的无效句柄(INVALID_HANDLE_VALUE)需要用FileClose来关闭吗
...全文
212 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyfwx 2011-08-16
  • 打赏
  • 举报
回复
只需要关闭有效的句柄
赵4老师 2011-08-16
  • 打赏
  • 举报
回复
system("dir /a-d /b /s c:\\windows\\*.* >c:\\allfiles.txt");
//然后读文件c:\\allfiles.txt的内容
gykgod 2011-08-16
  • 打赏
  • 举报
回复
无效就是没打开 关它鸟甚~
遍历并搜索枚举当前Windows Mobile系统中可用SD卡的源代码,更多资源请访问http://www.59186618.com 在WM中SD卡是重要的存储设备相当于PC系统的硬盘。用户有大量数据和程序保存在其中。SD卡一般以目录形式出现在根目录下,用户可以方便的访问比如模拟器上一般为\Storage Card目录。但是在真实系统中SD卡对应的目录名不是固定的。比如我见过\SDMMC或者\存储卡等等。 甚至在模拟器上如果在设置SD卡共享目录前已经存在\Storage Card目录则系统会将SD卡目录自动设置为\Storage Card2。因此我们的程序不能固定使用\Storage Card作为SD卡的目录名。WM中有一组特殊的API可以解决这个问题。 头文件:projects.h Lib库: note_prj.lib FindFirstFlashCard():获取第一个可用的SD卡信息,使用WIN32_FIND_DATA结构体保存这些信息。 返回查找句柄。 FindNextFlashCard():使用查找句柄和WIN32_FIND_DATA查找下一个可用的SD卡信息,返回BOOL类型的查找结果。 FindClose():关闭查找句柄。 示例程序枚举所有可用SD卡信息,并用弹出对话框显示SD卡目录名。 BOOL bContinue = TRUE; // If TRUE, continue // searching // If FALSE, stop searching. HANDLE hFlashCard; // Search handle for storage // cards WIN32_FIND_DATA *lpwfdFlashCard; // Structure for storing // card information. lpwfdFlashCard = (WIN32_FIND_DATA *) LocalAlloc (LPTR, 10 * sizeof (WIN32_FIND_DATA)); if (lpwfdFlashCard != NULL) // Failed allocate memory return; { hFlashCard = FindFirstFile(TEXT("\\*"), lpwfdFlashCard); //hFlashCard = FindFirstFlashCard (lpwfdFlashCard); } if (hFlashCard == INVALID_HANDLE_VALUE) { LocalFree (lpwfdFlashCard); // Free the memory. return; } while (bContinue) { //判断代码 if ((lpwfdFlashCard->dwFileAttributes & (FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_TEMPORARY)) == (FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_TEMPORARY)) { csPath = lpwfdFlashCard->cFileName; // This Folder is an mounted device (e.g. flash card) } // Search for the next storage card. bContinue = FindNextFile(hFlashCard, lpwfdFlashCard); //bContinue = FindNextFlashCard (hFlashCard, lpwfdFlashCard); } FindClose (hFlashCard); // Close the search handle. LocalFree (lpwfdFlashCard); // Free the memory. 遍历并搜索枚举当前Windows Mobile系统中可用SD卡的源代码,更多资源请访问http://www.59186618.com

64,670

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧