如何得到 系统 的全部 盘符(A: C:D:。。。)?我要 用自己的树列出它们的所有目录

dvd8x 2001-03-09 04:09:00
加精
如何得到 系统 的全部 盘符(A: C:D:。。。)?我要 用自己的树列出它们的所有目录
...全文
198 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sam_Yang 2001-05-18
  • 打赏
  • 举报
回复
刚写了一个
void GetAllLogicalDriveString(CStringArray& strArray)
{
DWORD dwNum = GetLogicalDriveStrings(0, NULL) * sizeof(TCHAR);
HANDLE hHeap = GetProcessHeap();
LPTSTR pszAllDrives = (LPTSTR)HeapAlloc(hHeap,
HEAP_ZERO_MEMORY, dwNum);
GetLogicalDriveStrings(dwNum / sizeof(TCHAR), pszAllDrives);

strArray.RemoveAll();
LPTSTR pszDrive = pszAllDrives;
while(pszDrive[0] != 0)
{
strArray.Add(pszDrive);
pszDrive = _tcschr(pszDrive, 0) + 1;
}

HeapFree(hHeap, 0, pszAllDrives);
}
dvd8x 2001-03-12
  • 打赏
  • 举报
回复
thanks all , 加分了
jslj 2001-03-09
  • 打赏
  • 举报
回复
敲错了一点点
结果是lpDrvString="A:\\\0C:\\\0D:\\\0\0";(假设只有A,C,D盘)
jslj 2001-03-09
  • 打赏
  • 举报
回复
DWORD dwRet=GetLogicalDriveString(0,NULL);
LPCTR lpDrvString=new char[dwRet];
GetLogicalDriveString(dwRet,lpDrvString);

结果是lpDrvString="A:\\\nC:\\\0D:\\\0\0";(假设只有A,C,D盘)
topgun 2001-03-09
  • 打赏
  • 举报
回复
DWORD dwLogDrives=GetLogicalDrives();
UINT nNumDrives=0;
do
{
if ( dwLogDrives%10 && nNumDrives!=1)
{
_stprintf(lpszDriveString,_T("%c:\\"),(TCHAR)(_T('A')+nNumDrives));
m_LocalCombox.AddString (lpszDriveString);
}
dwLogDrives>>=1;
nNumDrives++;
} while ( dwLogDrives !=0 );
TR@SOE 2001-03-09
  • 打赏
  • 举报
回复
for (Drive = 'A';Drive<='Z';Drive++)
{
String d;
d=IntToStr(Drive)+":\\";

switch GetDriveType(d.c_str())
{
case DRIVE_REMOVABLE :
Listbox1->Items->Add(Drive + " Removable");
case DRIVE_FIXED :
Listbox1->Items->Add(Drive + " Fixed");
case DRIVE_REMOTE :
Listbox1->Items->Add(Drive + " Network drive");
case DRIVE_CDROM :
Listbox1->Items->Add(Drive + " CD-ROM");
case DRIVE_RAMDISK :
Listbox1->Items->Add(Drive + " RAM Disk");
}
}

上面是一段伪代码,我对VC不熟,对C++ BUILDER熟悉一点。所以用BCB的语法。当然,关键是GetDriveType这个API。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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