计算机指令怎么编程文件,Windows下直接读C盘文件的编程代码 -电脑资料

写了一个可以直接在Windows下读扇区到C盘文件里的工具:

#include

#include

#define SECTOR_SIZE 512

int main(int argc, _TCHAR* argv[])

{

if (argc < 2)

{

_tprintf(_T("Not enough parameters. \n"));

return 0;

}

// 创建保存数据的文件

int Sector = _ttoi(argv[1]);

TCHAR * FileName = new TCHAR[MAX_PATH];

_tcscpy_s(FileName, MAX_PATH, _T("C:\\"));

_tcscat_s(FileName, MAX_PATH, argv[1]);

_tcscat_s(FileName, MAX_PATH, _T(".bin"));

HANDLE FileHandle = CreateFile(FileName, GENERIC_WRITE, NULL, NULL, CREATE_ALWAYS, 0, NULL);

delete[] FileName;

if (FileHandle == NULL)

{

_tprintf(_T("Create file failed: 0x%08X \n"), GetLastError());

return 0;

}

// 打开物理磁盘进行读取

HANDLE DiskHandle = CreateFile(_T("\\\\.\\PhysicalDrive0"), GENERIC_READ | GENERIC_WRITE,

FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);

if (DiskHandle == INVALID_HANDLE_VALUE)

{

_tprintf(_T("Open physical driver failed: 0x%08X \n"), GetLastError());

CloseHandle(FileHandle);

return 0;

}

// 移动到指定的位置并进行读取

SetFilePointer(DiskHandle, Sector * SECTOR_SIZE, NULL, FILE_BEGIN);

PBYTE Buffer = new BYTE[SECTOR_SIZE];

DWORD BytesReadWrote = 0;

ReadFile(DiskHandle, Buffer, SECTOR_SIZE, &BytesReadWrote, NULL);

// 将读出来的数据写到文件

WriteFile(FileHandle, Buffer, SECTOR_SIZE, &BytesReadWrote, NULL);

delete[] Buffer;

CloseHandle(DiskHandle);

CloseHandle(FileHandle);

_tprintf(_T("Succeed!\n"));

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值