GetLastErrorCopyFile 应该用完整路径名

解决方案 »

  1.   

    刚才专门为你做了个程序,路径"C:\Users\Administrator\Desktop\1.bmp"是没有问题的。但是我注意到新复制的文件在文件对话框所打开的那个目录里,而不是源文件所在文件夹里。
      

  2.   

    我重新写了下
    CopyFile("C:\\Users\\Administrator\\Desktop\\1.bmp",".\\pic\\test.bmp",FALSE)
    这个能成功
    CopyFile("C:\Users\Administrator\Desktop\1.bmp",".\\pic\\test.bmp",FALSE)
    这个还是失败,是单斜杠和双斜杠的问题
    而GetPathName()得到的文件路径里只有单斜杠,单斜杠是失败的,有办法能把它变成双斜杠吗?
      

  3.   

    执行语句strPathName="C:\\Users\\Administrator\\Desktop\\1.bmp"后, 
    strPathName的值为"C:\Users\Administrator\Desktop\1.bmp"。不信你试试。
      

  4.   

    执行一下以下的语句,strPathName = dlg.GetPathName();
    if(CopyFile(strPathName,".\\1.jpg",FALSE))
        ::MessageBox(NULL,"复制成功","提示",MB_OK);
    else
        ::MessageBox(NULL,"复制失败","提示",MB_OK);
    注意新生成的1.jpg在strPathName所指示的目录下。
      

  5.   

    strPathName = dlg.GetPathName()
    这是隐藏的比较深的一个使用习惯问题
    选择文件夹以后,工作目录就会跑到选定文件夹下面去了
    呵呵