CopyFile失败!

Comeon_01 2008-09-23 09:13:40
我想拷贝文件到指定目录下,现在路径都对,但是就是拷贝失败,返回值为0,而且dw=2,请问这到底是什么原因啊?

bool b= CopyFile("Result.mdb",myDataBasePath,FALSE);

DWORD dw= GetLastError();
...全文
1220 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Win32Coder 2008-09-23
  • 打赏
  • 举报
回复
楼主看看这个API

MoveFileEx()

注意 MOVEFILE_DELAY_UNTIL_REBOOT 这个Flag,这个能重启后拷贝,删除,也是写注册表方式。
楼主看行不行。
flight_lcf 2008-09-23
  • 打赏
  • 举报
回复
写入固定的路径尝试一下,不要写相对路径
Conry 2008-09-23
  • 打赏
  • 举报
回复


//得到当前文件路径
char path[MAX_PATH];
int size=MAX_PATH;
GetModuleFileName(NULL,path,size);

CString str = path;
int pos = m_appPath.ReverseFind('\\');
str = str.Left(pos)+"\\Result.mdb";


CopyFile(str,myDataBasePath,FALSE);


Comeon_01 2008-09-23
  • 打赏
  • 举报
回复
LastError == 3又出现了这个问题了!郁闷!
Comeon_01 2008-09-23
  • 打赏
  • 举报
回复
5楼的方法是对的,但是,我现在必须得执行一个任务就是:程序结束后,把当前目录下的一个文件拷贝倒啊一个指定的文件夹里,请问该如何解决呢?谢谢!
Comeon_01 2008-09-23
  • 打赏
  • 举报
回复
用1楼的方法还是不行啊!
菜牛 2008-09-23
  • 打赏
  • 举报
回复
我估计还是“路径不对”,因为你使用的是相对路径,而在IDE中运行和在资源管理器中运行当前的路径是不一样的。
Win32Coder 2008-09-23
  • 打赏
  • 举报
回复
我上面的程序代码放在mfc里也行,不弹窗的。
Comeon_01 2008-09-23
  • 打赏
  • 举报
回复
而且好有个问题就是,我的文件存在,怎么会找不到指定目录呢?
Comeon_01 2008-09-23
  • 打赏
  • 举报
回复
我是用的是mfc,请问有别的方法吗?不适用命令行的?谢谢!
Win32Coder 2008-09-23
  • 打赏
  • 举报
回复
LastError == 2 : 系统找不到指定的文件。

有时候CopyFile()会失败,即时文件未使用或者存在。

你可以设定多种方法来实现。。。




TCHAR szCommand[MAX_PATH_EX] = {0};
sprintf(szCommand, "CMD /C Copy /V /Y \"%s\" \"%s\"", szNew, szOld);
if (WinExec(szCommand, SW_HIDE) <= 31)
{
byLog("文件替换失败! file: %s", szNew);
return FALSE;
}
【例8.2】将一个文件的内容复制到另一个文件中去。 //程序名为:copyfile.c //执行时可用:copyfile filename1 filename2形式的命令行运行,将文件filename1中的内容复制到文件filename2中去。 //file copy program. #include void main(int argc,char *argv[]) //命令行参数 { int ch; FILE *in,*out; //定义in和out两个文件类型指针 if(argc!=3) //判断命令行是否正确 { printf("Error in format,Usage: copyfile filename1 filename2\n"); return; //命令行错,结束程序的执行 } //按读方式打开由argv[1]指出的文件 if((in=fopen(argv[1],"r"))==NULL) { printf("The file <%s> can not be opened.\n",argv[1]); return; //打开失败,结束程序的执行 } //成功打开了argv[1]所指文件,再 //按写方式打开由argv[2]指出的文件 if((out=fopen(argv[2],"w"))==NULL) { printf("The file %s can not be opened.\n",argv[2]); return; //打开失败,结束程序的执行 } //成功打开了argv[2]所指文件 ch=fgetc(in); //从in所指文件的当前指针位置读取一个字符 while(ch!=EOF) //判断刚读取的字符是否是文件结束符 { fputc(ch,out); //若不是结束符,将它写入out所指文件 ch=fgetc(in); //继续从in所指文件中读取下一个字符 } //完成将in所指文件的内容写入(复制)到out所指文件中 fclose(in); //关闭in所指文件 fclose(out); //关闭out所指文件 } ----------------------- 文件内容复制程序全文共1页,当前为第1页。

16,472

社区成员

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

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

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