ReadFile C ++上的访问冲突异常

时间:2017-04-20 10:16:16

标签: c++ windows

所以我试图通过使用ReadFile将文件读入文件缓冲区,但每次抛出此异常

enter image description here

我不明白为什么它有写入的访问冲突,文件确实存在,我可以在Visual Studio汽车观察中看到文件句柄,缓冲区和文件大小

import shutil
import os

cur_dir = os.getcwd() # current dir path
L = ['1442735516927', '1442209637226', '1474723762231', '1442735556057',
        '1474723762187', '1474723762286', '1474723762255', '1474723762426',
        '1474723762379', '1474723762805', '1474723762781', '1474723762936',
        '1474723762911', '1474723762072', '1474723762163', '1474723762112',
       '1442209642695', '1474723759389', '1442735566966']

list_dir = os.listdir(cur_dir)
dest = os.path.join(cur_dir,'/path/leadingto/merge_1') 

for sub_dir in list_dir:
    if sub_dir in LL:
        dir_to_move = os.path.join(cur_dir, sub_dir)
        shutil.move(dir_to_move, dest)

1 个答案:

答案 0 :(得分:1)

documentation说明了最后两个参数:

  

lpNumberOfBytesRead [out,optional]

     

指向变量的指针,该变量接收使用同步hFile参数时读取的字节数。在进行任何工作或错误检查之前,ReadFile将此值设置为零。如果这是一个异步操作,请对此参数使用NULL,以避免可能出现错误的结果。

     

仅当lpOverlapped参数不为NULL时,此参数才为NULL。

所以使用指向要写入的有效目标的指针来调用它,而不是NULL

DWORD outSize = 0;

ReadFile(hFile, FileBuffer, FileSize, &outSize, NULL);