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