GetLogicalDriveStringS获取驱动器根路径
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
// 预定义
#define BUFSIZE 1024
//函数申明
BOOL GetDirverInfo(LPSTR szDrive);
void main(void)
{
CHAR szLogicalDriveStrings[BUFSIZE];
PCHAR szDrive;用来指向字符数组
//将上面申请的CHar数组用O填充
ZeroMemory(szLogicalDriveStrings,BUFSIZE);
//获取逻辑驱动器卷标名 写入数组
GetLogicalDriveStrings(BUFSIZE-1,szLogicalDriveStrings);
//指向字符数组
szDrive=(PCHAR)szLogicalDriveStrings;
//循环每个卷
do
{
if(!GetDirverInfo(szDrive))
{
printf("\n 获取错误:%d",GetLastError());
}
szDrive +=(lstrlen(szDrive)+1);
}
while(*szDrive!='\x00');
printf("\n",szDrive);
}
BOOL GetDirverInfo(LPSTR szDrive)
{
UINT uDriveType;
DWORD dwVolumeSerialNumber;
DWORD dwMaximumComponentLength;
DWORD dwFileSystemFlags;
CHAR szFileSystemNameBuffer[BUFSIZE];
CHAR szDirveName[MAX_PATH];
printf("\n%s\n",szDrive);
uDriveType = GetDriveType(szDrive);//TCHAR的指针类型
switch(uDriveType)
{
case DRIVE_UNKNOWN:
printf("the drive type cannot be determined");
break;
case DRIVE_NO_ROOT_DIR:
printf("the root path is invalid, for example,no volume is mounted at the path");
break;
case DRIVE_REMOVABLE:
printf("the drive is a type that has removable media,for example,a floppy drive or removable hard disk");
break;
case DRIVE_FIXED:
printf("the drive is a type that cannot be removed,for example,a fixed hard drive");
break;
case DRIVE_REMOTE:
printf("the drive is a remote(network) drive");
break;
case DRIVE_CDROM:
printf("the drive is a CD_ROM drive");
break;
case DRIVE_RAMDISK:
printf("the drive is a RAM disk");
break;
default:
break;
}
if(!GetVolumeInformation(//读取文件系统信息
szDrive,
szDirveName,
MAX_PATH,
&dwVolumeSerialNumber,
&dwMaximumComponentLength,
&dwFileSystemFlags,
szFileSystemNameBuffer,
BUFSIZE
))
{
return FALSE;
}
if(0!=lstrlen(szDirveName))
{
printf("\nDrive name is %s\n",szDirveName);
}
printf("\nVolume serial Number is %u",dwVolumeSerialNumber);
printf("\nMaximum Component Length is %u",dwMaximumComponentLength);
printf("\nsystem type is %s\n",szFileSystemNameBuffer);
if (dwFileSystemFlags & FILE_VOLUME_QUOTAS)
{
printf("the file system supports disk quotas");
}
if (dwFileSystemFlags & FILE_CASE_SENSITIVE_SEARCH)
{
printf("the file system supports case-sensitive file names");
}
return TRUE;
}
转载于:https://www.cnblogs.com/darkdance/archive/2011/11/28/2266766.html
GetLogicalDriveStringS获取驱动器根路径相关推荐
- Python 获取项目根路径
本文仅供学习交流使用,如侵立删!demo下载见文末 获取项目根路径 os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 本文仅供学习 ...
- java获取项目根路径通用方法
windows或linux系统通用,包含常用的三个方法. package com.home.util;import java.io.File;/*** 获取项目的根路径* 在windows和linux ...
- JAVA获取Classpath根路径的方法
方法一: String path = Test.class.getResource("/").toString(); System.out.println("path = ...
- 获取项目根路径,并在其下创建一个名称为userData 的目录。
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); NSStri ...
- 获取请求的url java_Java获取此次请求URL以及服务器根路径的方法
一. 获取此次请求的URL String requestUrl = request.getScheme() //当前链接使用的协议 +"://" + request.getServ ...
- java application 路径_java项目获取根路径(web项目和application项目的区分)
Java项目中经常要读取配置文件,涉及到读取配置文件的地方,就会要读定位文件的路径.因此,在项目如何正确获取文件路径尤为关键. 根据不同的java项目,在获取文件路径时候有一些 小区别 测试环境:E: ...
- #js--js获取${pageContext.request.contextPath}得到项目的根路径
我们知道,在js中直接获取jsp中的EL表达式是无法获取的,要想获取${pageContext.request.contextPath}的值,我们可以使用下面的两种方式: 1.在${pageConte ...
- js获取当前应用根路径contextPath完美方案
最近在升级华丹开发平台,想通过js直接获取上下文路径contextPath,而不用通过参数配置的方式,减少用户配置麻烦. 上网查了一下,没有理想的方案.比如(节选自网上资料): 方法一: 在JSP页面 ...
- FindFirstVolume系列函数遍历驱动器,获取驱动器信息
什么是"卷"? 卷,又称为"逻辑驱动器",是 NTFS, FAT32 等文件系统组织结构的最高层.卷是存储设备(如硬盘)上由文件系统管理的一块区域,是在逻辑上相 ...
最新文章
- Kaggle上的犬种识别(ImageNet Dogs)
- python类的__slots__属性、__del__属性、上下文(__enter__和__exit__)、
- Android逆向之调试smali代码基础
- html用JQuery自定义表单验证。
- 5笔涂出一只3D猫咪模型,可跑可跳无需手动绑定骨骼,新鬼畜素材get丨浙大开源...
- RedisLive监控工具 windows部署笔记
- C++面试八股文快问快答のSTL篇
- C# 系统应用之无标题窗体移动的两种方法
- MySQL select后面的子查询使用
- java selenium (二) 环境搭建方法一
- Cortex-M3操作模式和特权级别
- GJM:用C#实现网络爬虫(一) [转载]
- python压缩和读取.tar.bz2格式的压缩包
- socat命令如何监听Linux串口设备通讯报文
- 信息论与编码冯桂周林著答案_信息论与编码技术+(冯桂+林其伟+陈东华+著)+清华大学出版社+课后答案.pdf...
- 我读过关于面试最好的一篇文章
- MATLAB -plotyy函数
- 计算机毕业优秀作品展观后感,毕业设计作品展观后感
- HTTP Error 503
- 计算机管理中误删用户,win10管理员账户删除了怎么解决?
热门文章
- 学习python自动化运维笔记文件比较
- 站长圈转风向标了 都玩自媒体了!
- CCNP OSPF协议详解
- c语言作用域有哪两种变量,2017年计算机二级C语言字考点归纳:变量的存储类别、作用域及生存期...
- python account_GitHub - Python3WebSpider/AccountPool: Account Pool
- Linux Kernel TCP/IP Stack — L3 Layer — netfilter 框架 — iptables NAPT 网络地址/端口转换
- SuperEdge — Overview
- etcd — 操作手册
- 快速理解 session/token/cookie 认证方式
- NanoPi NEO Air使用五:安装Xfce和xrdp,实现远程访问