小弟在调用SHFileOperation函数进行文件拷贝的时候,总是出现“无法复制文件:无法读取源文件或磁盘”的错误,不知是什么原因造成的,请高手帮忙。
程序代码大致如下:
function TFormMain.FileCopy(source: string;destination: string):integer;//文件拷贝,用于图片的拷贝
var
    F:TShFileOpStruct;
begin
    try
        F.wnd := FormMain.Handle;
        F.wFunc := FO_COPY;
        F.pFrom := PAnsiChar(source);
        F.pTo := PAnsiChar(destination);
        F.fAnyOperationsAborted := false;
        F.lpszProgressTitle := '拷贝';
        F.fFlags := FOF_SILENT OR FOF_NOCONFIRMATION OR FOF_ALLOWUNDO;
        if ShFileOperation(F)<>0 then
        begin
            FileCopy := -1
        end
        else
            FileCopy := 1;
    except
        FileCopy := -1;
    end;
end;

解决方案 »

  1.   

    function FileCopy(source: string;destination: string):integer;//文件拷贝,用于图片的拷贝
    var
        F:TShFileOpStruct;
    begin
        try
            F.wnd := form1.handle;
            F.wFunc := FO_COPY;
            F.pFrom := PAnsiChar(source+#0);
            F.pTo := PAnsiChar(destination+#0);
            F.fAnyOperationsAborted := false;
            F.lpszProgressTitle := '拷贝';
            F.fFlags := FOF_SILENT OR FOF_NOCONFIRMATION OR FOF_ALLOWUNDO;
            if ShFileOperation(F)<>0 then
            begin
                FileCopy := -1
            end
            else
                FileCopy := 1;
        except
            FileCopy := -1;
        end;
    end;