那个文件操作参数结构pFrom和pTo需要用#0#0结尾,你是的吗?

解决方案 »

  1.   

    这是SHFileOperation自身一个特色所造成的:每调用一次SHFileOperation,它不单可以对
    一个文件进行操作,还可以同时对多个文件进行操作,而操作多个文件的文件名同样保存在
    pTo与pFrom成员中。这就带来一个问题,即SHFileOperation如何去区别某次操作是对一个
    文件还是对多个文件进行?而它采用的办法是规定在进行多个文件操作时应该把各个文件名
    用'\0'符号分开并以"\0\0"作为一系列文件名字符串的最终结尾。MSDN是这样说的,但这句
    话却间接隐含了另外一个意思:即便你对一个文件进行操作,源文件名与目标文件名也同样
    要以"\0\0"作为字符串结尾,否则SHFileOperation怎么知道后面还有没有文件名设定?!
    正是这个原因造成代码有时候运行成功,有时运行失败。
      

  2.   

    怎么不用copyfile('c:\grt2101', dir, false);//copyfile是delphi自己带的函数
      

  3.   

    to 月光() 
    copyfile只能拷贝一个文件。功能上远不及SHFileOperation。SHFileOperation是调用的windows外壳。你应该见过windows的拷贝吧。当有文件存在时要覆盖有提示,有进度条。我最看重的是当拷贝a.htm时,如果有a.file这个目录,它会一起拷贝,有利于维护下载网页的完整性。