⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 我自己实现的fat16文件系统驱动
💻 CPP
字号:
#include "stdafx.h"
#include <windows.h>
#include "filesys.h"
#include <stdio.h>

HANDLE DiskFile;
HANDLE FileMap;
PVOID MemDisk;
const DISK_MAX_SIZE = 32*1024*1024;

BOOL DiskInitialize()
{
	BOOL bRet = FALSE;

	do
	{
		DiskFile = CreateFile("Disk.dsk",
			GENERIC_READ|GENERIC_WRITE, 
			FILE_SHARE_READ, 
			NULL,
			OPEN_EXISTING,
			FILE_ATTRIBUTE_NORMAL,
			NULL);
		if(DiskFile == INVALID_HANDLE_VALUE)
			break;
		
		FileMap = CreateFileMapping(DiskFile,
			NULL,
			PAGE_READWRITE,
			0,
			DISK_MAX_SIZE,
			NULL);
		if(FileMap == NULL)
		{
			CloseHandle(DiskFile);
			break;
		}
		
		MemDisk = MapViewOfFile(FileMap,
			FILE_MAP_ALL_ACCESS,
			0,
			0,
			DISK_MAX_SIZE);
		if(MemDisk == NULL)
		{
			CloseHandle(FileMap);
			CloseHandle(DiskFile);
			break;
		}

		bRet = TRUE;
	}while(0);

	return bRet;
}

void DiskUninitialize()
{
	UnmapViewOfFile(MemDisk);
	CloseHandle(FileMap);
	CloseHandle(DiskFile);
}

int main(int argc, char* argv[])
{
	if(!DiskInitialize())
		return 1;
	
	CFileSys fs(MemDisk);

	if(fs.Initialize())
	{/*
		char buff[]="fangajfdklsafjasfa;lfs;l";

		fs.fat_mkdir("\\folder\\1\\abcde");
		int x = fs.fat_creat("\\folder\\1\\abcde\\fang123.txt", 0x27);

		fs.fat_write(x, buff, 10);
		fs.fat_lseek(x, 0, SEEK_SET);
		memset(buff, 0, sizeof(buff));
		fs.fat_read(x, buff, 15);
		
		fs.fat_close(x);

		fs.fat_rename("\\folder\\1\\abcde\\fang123.txt", "fang321.txt");

		struct _STAT stat;
		fs.fat_get_stat("\\folder\\1\\abcde\\fang321.txt", &stat);

		stat.Attr = 0;
		fs.fat_set_stat("\\folder\\1\\abcde\\fang321.txt", &stat);

		char filename[13];
		fs.fat_getfirst("\\folder\\1\\abcde", filename);
		fs.fat_getnext(filename);

		fs.fat_remove("\\folder\\1\\abcde\\fang321.txt");

		fs.fat_rename("\\folder\\1\\abcde", "\\folder\\1\\abcd12");

		fs.fat_rmdir("\\folder\\1\\abcd12");
*/
		fs.fat_rename("\\folder\\1\\abcde", "abcd12");
		fs.Uninitialize();
	}


	DiskUninitialize();
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -