难住我了,在dos下,如何知道共有几个逻辑盘? 例如:打开e:\\test.txt文件,如果没有e盘,就会出现错误。请问,如何避免此错误信息的出现?或者事先怎样知道是否存在E盘?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你查一下MSDN里面有一个函数可以读出机器中存在的逻辑盘并返回 还可以读出每个盘的性质GetLogicalDriveStrings可以得到逻辑启动器名GetDriveType 取盘类型CHAR SysDir[128];strLen=GetLogicalDriveStrings(128,SysDir);UINT DiskType; DiskType=GetDriveType(DriveName); switch(DiskType) {// case DRIVE_NO_ROOT_DIR:// return FALSE; case DRIVE_REMOVABLE: //::AfxMessageBox(DriveName); break; case DRIVE_FIXED: //::AfxMessageBox("固定硬盘驱动器"); break; case DRIVE_REMOTE: //::AfxMessageBox("这是网络驱动器"); return FALSE; case DRIVE_CDROM: //::AfxMessageBox("这是光盘驱动器"); return FALSE; } _access()也可以用来直接判断文件或者文件夹是否存在(可读,可写)也许可以更直接的避免你程序中的错误 FindFile依次从c查到z,查找X:\*.*,然后试试 c++ 与lua的问题 长假归来,散分! 我把事件对象设为无信号状态 为什么在别的线程里面还是能够等到呢? 用VC6.0如何进行人体识别? 如何让一个计时器重新计时? 关于枚举进程模块的问题 大家来给个意见 调试问题 如何关闭显示器 请问用什么函数对浮点数进行四舍五入? 如何判断注册表键是否存在 请教如何在DLL内设置一个时钟?
GetLogicalDriveStrings可以得到逻辑启动器名
GetDriveType 取盘类型CHAR SysDir[128];
strLen=GetLogicalDriveStrings(128,SysDir);UINT DiskType;
DiskType=GetDriveType(DriveName);
switch(DiskType)
{
// case DRIVE_NO_ROOT_DIR:
// return FALSE;
case DRIVE_REMOVABLE:
//::AfxMessageBox(DriveName);
break;
case DRIVE_FIXED:
//::AfxMessageBox("固定硬盘驱动器");
break;
case DRIVE_REMOTE:
//::AfxMessageBox("这是网络驱动器");
return FALSE;
case DRIVE_CDROM:
//::AfxMessageBox("这是光盘驱动器");
return FALSE;
}
也可以用来直接判断文件或者文件夹是否存在(可读,可写)
也许可以更直接的避免你程序中的错误