查找WINCE外部存储器

//========================================================================
//TITLE:
//    查找WINCE外部存储器
//AUTHOR:
//    norains
//DATE:
//    Saturday  29-April-2006
//========================================================================
    WINCE文件夹分为对象存储和外部存储.对象存储处于RAM,断电消失;外部存储即硬盘U盘等非易失性存储器,断电数据依然存在.在WINCE下,对这两种存储器的操作是透明的,没有使用上的区别.只是我们在使用过程当中,可能需要将这两者区分.
    这是查找根目录下的外部存储器的代码:

CString m_sStorageName[20]; //外部定义的一个数组,用来保存外部存储器名  
void FindStorage( )
{
 HANDLE hSearch;                // FindFirstFile函数返回的句柄
 WIN32_FIND_DATA  fd;           // 文件的数据结构
 BOOL bFinished = FALSE;        // 循环结束标志
 TCHAR *szFname = TEXT("//*");  // 要查找的文件名
 m_iStorageNum=0;               //外部存储器的数量
 

 // 确认是否有文件存在.
 hSearch = FindFirstFile(szFname, &fd);
 
 if (hSearch == INVALID_HANDLE_VALUE)
 {  
   //没找到,返回
  return;
 }


  do {
  
  //当文件具有FILE_ATTRIBUTE_TEMPORARY和FILE_ATTRIBUTE_DIRECTORY属性才是外部存储器(文件夹)

  if (  (fd.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY)
     && (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) )
  {
    m_iStorageNum++;
    m_sStorageName[m_iStorageNum-1]=fd.cFileName; //存储存储器名
  }

  if (!FindNextFile (hSearch, &fd))
  {
   //已经查找到最后一个文件,置结束标志
    bFinished = TRUE;
  }
  } while (!bFinished);

  FindClose (hSearch);  // 关闭句柄.
}

posted @ 2006-04-29 14:30  我的一天  阅读(143)  评论(0编辑  收藏  举报