现在的位置: 首页 > 综合 > 正文

查找WINCE外部存储器

2013年11月12日 ⁄ 综合 ⁄ 共 1144字 ⁄ 字号 评论关闭

//========================================================================
//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);  // 关闭句柄.
}

抱歉!评论已关闭.