这是查找根目录下的外部存储器的代码:
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); // 关闭句柄.
}