一、文件系统
文件系统是操作系统用于管理磁盘上文件的方法和数据结构;简单点说就是在磁盘上如何组织文件的方法。
二、卷相关API
<1> 获取卷
GetLogicalDrives()
#include "stdafx.h"
#include "windows.h"
VOID Test()
{
DWORD dwLogicalDrives = GetLogicalDrives() ;
printf("%d",dwLogicalDrives);
}
int main(int argc, char* argv[])
{
Test();
getchar();
return 0;
}
如图是12
,换算成二进制 1100
,从右往左,0代表这个盘没有,1代表这个盘有
<2> 获取一个所卷的盘符的字符串
GetLogicalDriveStrings()
#include "stdafx.h"
#include "windows.h"
VOID Test()
{
DWORD dwMaxLength = 100;//获取长度最大值
char szBuffer[100];//提供一个缓冲
GetLogicalDriveStrings(dwMaxLength ,szBuffer);
}
int main(int argc, char* argv[])
{
Test();
getchar();
return 0;
}
如图获取卷的盘符的字符串
<3> 获取卷的类型
GetLogicalDrives()
<4> 获取卷的信息
GetVolumeInformation()
#include "stdafx.h"
#include "windows.h"
VOID Test()
{
TCHAR szVolumneName[260] = {0};
DWORD dwVolumneSerial = 0;
DWORD dwMaxLength = 0 ;
DWORD dwFileSystem = 0;
TCHAR szFileSystem[260] = {0};
GetVolumeInformation
(
"c:\\", //IN 磁盘驱动器代码字符串
szVolumneName, //OUT 磁盘驱动器卷标名称
260, //IN 磁盘驱动器卷标名称长度
&dwVolumneSerial, //OUT 磁盘驱动器卷标序列号(不是硬盘序列号)
&dwMaxLength , //OUT 系统允许的最大文件名长度
&dwFileSystem , //OUT 文件系统标识
szFileSystem, //OUT 文件操作系统名称
260 //IN 文件操作系统名称长度
);
printf("Name:%s\nSerial:%X\nLength:%d\nFileSystem:%X \\ %s\n",szVolumneName,dwVolumneSerial,dwMaxLength ,dwFileSystem,szFileSystem);
}
int main(int argc, char* argv[])
{
Test();
getchar();
return 0;
}
三、目录相关API
#include "stdafx.h"
#include "windows.h"
VOID Test()
{
//reateDirectory("c:\\A",NULL); //创建目录
//emoveDirectory("c:\\A"); //删除目录
//MoveFile("c:\\A","c:\\B"); //修改目录名称
SetCurrentDirectory("c:\\A"); //设置程序当前目录
CreateDirectory("A",NULL); //在设置程序当前目录下创建一个目录A
}
int main(int argc, char* argv[])
{
Test();
getchar();
return 0;
}
四、文件相关API
#include "stdafx.h"
#include "windows.h"
VOID Test()
{
//创建一个文件
HANDLE hFile = CreateFile(
"C:\\A.txt", //创建文件路径
GENERIC_READ| GENERIC_WRITE, //读写权限
0, //在创建完成到关闭文件之前,其他进程对该文件的操作,0排它
NULL, //安全描述符
CREATE_ALWAYS, //总是创建,不管文件存不存在
FILE_ATTRIBUTE_HIDDEN, //隐藏文件
NULL
);
//获取文件长度
DWORD dwHigh = 0;
DWORD dwLow = GetFileSize(hFile ,&dwHigh );
//关闭文件
CloseHandle(hFile );
}
int main(int argc, char* argv[])
{
Test();
getchar();
return 0;
}