将文件复制到另一个目录不起作用

时间:2012-12-20 02:51:26

标签: c++

我从一个将文件复制到另一个文件的网站上获得了以下代码,它编译并运行,但输出文件的内容不会改变。 有人可以指出问题出在哪里? 我使用开发c ++ IDE(编辑:可能与mingw)。

 #include <fstream>
#include <string>
#include <stdio.h>
#include <iostream>
#include <iomanip>
#include <windows.h>

using namespace std;

int main(){

    CopyFile("C:\\Users\\KEVIN\\Documents\\c++\\t.txt","C:\\Users\\KEVIN\\Documents\\c++\\output.txt",false);
system("pause");
return 0;   
}

1 个答案:

答案 0 :(得分:1)

修改

这不再是C ++问题了。 Windows保护特殊文件夹,例如C:C:\windows等。您需要以管理员身份运行程序,或者只需在C:中创建一个临时文件夹即可访问它。

下面的代码有未定义的行为,它创建了fileSize / 2内存块,但尝试使用fileSize进行读/写,它不受限制。

short * buffer = new short[fileSize/2];
initialFile.read((char*)buffer, fileSize);

修复:

short * buffer = new short[fileSize];

我想采取JerryCoffin的想法,只需使用Windows CopyFile函数。