CopyFile()

qing760416112 2010-08-12 12:58:45
#include<windows.h>
int main()
{

HANDLE hFile;
HANDLE h;
CHAR written[1024]="first";
DWORD w;

hFile=CreateFile("first.txt",GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
h=CreateFile("second.txt",GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);

WriteFile(hFile,written,lstrlen(written),&w,NULL);
CopyFile("D:\Program Files\Microsoft Visual Studio\MyProjects\ab\first.txt","C:\Documents and Settings\Administrator\桌面\KJJ\third.txt",FALSE);


CloseHandle(hFile);
CloseHandle(h);


//DeleteFile("first.txt");


return 0;
}

大家帮我看看这个为什么就没有复制过去呢?????
...全文
376 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2010-08-12
  • 打赏
  • 举报
回复
用SHFileOperation()
qing760416112 2010-08-12
  • 打赏
  • 举报
回复
怎么没人回答呀。哎 ,过了12点要是还不能解决的话 只能再发帖了
na_he 2010-08-12
  • 打赏
  • 举报
回复
CloseHandle(hFile);
CloseHandle(h);

这两句最好也放在copyfile之前比较合理。
zwhate 2010-08-12
  • 打赏
  • 举报
回复
确实路径错了,“\”应该用"\\"来表示
xun_jing 2010-08-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 stephen_young 的回复:]
C/C++ code
CopyFile("D:\Program Files\Microsoft Visual Studio\MyProjects\ab\first.txt","C:\Documents and Settings\Administrator\桌面\KJJ\third.txt",FALSE);




将字符串中的‘\’改成'\\'

C/C++ code
CopyF……
[/Quote]
这样的程序编译时应该会报错啊 (警告?) 当你的程序需要用 """ "\" 等字符时 都需要在前面加上转义字符"\" .最常见的应该是 \n\t 吧
一名程序员 2010-08-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 stephen_young 的回复:]
C/C++ code
CopyFile("D:\Program Files\Microsoft Visual Studio\MyProjects\ab\first.txt","C:\Documents and Settings\Administrator\桌面\KJJ\third.txt",FALSE);




将字符串中的‘\’改成'\\'


C/C++ code
C……
[/Quote]同时看看路径的目录是否存在。
qing760416112 2010-08-12
  • 打赏
  • 举报
回复
#include<windows.h>
#include<stdio.h>

DWORD ReadFileContent(LPSTR szFilePath)
{
HANDLE hFileRead;
LARGE_INTEGER liFileSize;
BYTE lpFileDataBuffer[32];
DWORD dwReadSize;
LONGLONG liTotalRead=0;

hFileRead=CreateFile(szFilePath,GENERIC_READ,GENERIC_READ ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);//OPEN_EXISTING 文件必须已经存在。由设备提出要求

if(hFileRead==INVALID_HANDLE_VALUE)
{

printf("打开文件失败: %d\n",GetLastError());


}
if(!GetFileSize(hFileRead,NULL))//这里把NULL改为&liTotalRead,为什么出错

{

printf("获取文件大小失败:%d",GetLastError());


}


else
{
printf("文件大小为: %d",liFileSize.QuadPart);

}


while(TRUE)
{

DWORD i;



if(!ReadFile(hFileRead,lpFileDataBuffer,32,&dwReadSize,NULL))
{

printf("读文件错误: %d",GetLastError);
break;
}

printf("读取了%d个字节,文件的内容是:",dwReadSize);

for(i=0;i<dwReadSize;i++);
{

printf("0x%x",lpFileDataBuffer[i]);

}


printf("\n");
liTotalRead+=dwReadSize;
if(liTotalRead==liFileSize.QuadPart)
{
printf("读文件结束\n");
break;

}



}




CloseHandle(hFileRead);
return 0;
}


int main(void )
{

ReadFileContent("C:\\Documents and Settings\\Administrator\\桌面\\TEST.txt");

return 0;
}
//运行的时候出现打开文件失败:87
//帮忙修改下
qing760416112 2010-08-12
  • 打赏
  • 举报
回复
谢谢大家了 就是以上大家说的这个错误
奔跑的北极熊 2010-08-12
  • 打赏
  • 举报
回复
CopyFile("D:\Program Files\Microsoft Visual Studio\MyProjects\ab\first.txt","C:\Documents and Settings\Administrator\桌面\KJJ\third.txt",FALSE);



将字符串中的‘\’改成'\\'

CopyFile("D:\\Program Files\\Microsoft Visual Studio\\MyProjects\\ab\\first.txt","C:\\Documents and Settings\\Administrator\\桌面\\KJJ\\third.txt",FALSE);

qing760416112 2010-08-12
  • 打赏
  • 举报
回复
感觉是在路径上出错了,但又不清楚怎么改

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧