当前位置: 首页 > article >正文

error:Cannot create file when that file already exists_

1、程序是调用汤总的程序,应该没什么问题。只是改了某些读取的分区的信息。

2、我把所有的地方都添加了日志,结果却发现还是那个地方出问题:在使用ReadFile读扇区的时候提示,“文件已经存在,不能创建”的错误。

3、听路哥的建议,把这个函数拆的简单点儿,啥都不带,只含日志。结果竟然报“error 87:参数错误”的错误,我更是无语了。

4、后来只能把错误定位在读取扇区的长度上了。一问汤总,才发现读扇区时,只能512位地读,而不是只读4位。

5、读扇区只能一下子读512字节的倍数,读其他的长度只会失败。

正确的代码如下:

#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;void main(int argc,char *argv[])
{if (argc<2){return ;}DWORD dwCB;bool ret;LARGE_INTEGER newoffset;LARGE_INTEGER alignedOffset;unsigned long alignedLength  = sizeof(unsigned char)*512; //一开始这里是sizeof(unsiged char)*4,于是就出现那个错误。
unsigned int * lpSectBuff = (unsigned int *)malloc(sizeof(unsigned int));alignedOffset.LowPart = 5*512;alignedOffset.HighPart = 0;char devName[100]="\\\\.\\PhysicalDrive0";HANDLE hDev = CreateFile(devName, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);cout<<hDev<<endl;if (hDev == INVALID_HANDLE_VALUE) {printf("ReadSectors device CreateFile handle error ,GetLastError:%lu\n",GetLastError());return ;}else{printf("ReadSectors device CreateFile handle succeed");	}ret = SetFilePointerEx(hDev, alignedOffset, &newoffset, FILE_BEGIN);if (ret== false){printf(" ReadSectors SetFilePointerEx error fail11,GetLastError:%lu\n",GetLastError());CloseHandle(hDev);return ;}else{printf(" ReadSectors SetFilePointerEx succeed\n");}BOOL bRet = ReadFile(hDev, lpSectBuff, alignedLength, &dwCB, NULL);if (bRet == FALSE){printf("ReadSectors_l error,getlasterror:%lu. length= %x\n",GetLastError(),dwCB);CloseHandle(hDev);return ;}else{printf(" ReadSectors_l succeed ,already read length= %x\n",dwCB);}CloseHandle(hDev);return ;}

http://www.lryc.cn/news/2413098.html

相关文章:

  • http://95u.free.fr/index.php,Electronic Software Distribution Service
  • 【Windows】VMware虚拟机应用(一):下载安装 VMware Workstation
  • 同人文生成器狗屁不通文章生成器各种生成器 简易写法
  • 用云服务器搭建一个属于自己的网站(手把手教学)
  • 怎么建立局域网_tp-link无线路由器怎么设置 tp-link无线路由器设置方法【图文教程】...
  • 数据采集工具有哪些,3个常用数据采集工具
  • fxcm外汇模拟交易mt4_利用MT4交易外汇,修改数据不构成诈骗罪(15个辩护观点及法条)...
  • 《算法谜题》
  • SQLServer2005新特性
  • 新发布【迷城的国度】【大富翁8】两个游戏的内存属性修改器
  • 版权原因,QQ不再内置flash插件,需安装二个插件
  • 编码器的类型和原理
  • OD使用经验【转载】
  • 阿里云服务器如何恢复出厂设置?
  • 青铜修炼手册:Axure地图搜索交互
  • 一本经典书籍--《Linux命令行与shell脚本编程大全》
  • Android 开发是否有前途?
  • 详解 C++ 对象模型
  • 自动化测试:behave
  • 从58%到10%‼️翟天临的论文查重报告单
  • 6.携程架构实践 --- 数据库
  • 《大国策》杂志正规吗
  • 【转载】C语言,利用网络短信验证码接口实现手机短信发送
  • java jdk 1.6配置_JDK1.6配置
  • 数据中台 | 3分钟带你读懂数据中台的由来
  • Spring Boot配置MongoDB多数据源
  • 你是否也想拥有属于自己的酷炫的个人博客?从0到1的详细搭建过程,看完学不会你找我
  • 电脑中毒该怎么办?电脑中病毒后的处理步骤!电脑感染病毒怎么办?电脑中病毒的症状!怎么知道电脑中毒了
  • s3c6410 ARM开发板烧写uboot新手入门笔记
  • 2024年必备的14个Windows常见问题自救指南,小白必学~