要实现在单机和局域网中定时将文件夹中的文件和其他嵌套的文件夹备份到制定目录。
   请教使用什么API函数或什么好的方法能备份文件和文件夹,以及如何在局域网中实现?

解决方案 »

  1.   

    我转的别人的,最近也在做这个作业   1.1拷贝目录的递归辅助函数:DoCopyDir function DoCopyDir(sDirName:String;
    sToDirName:String):Boolean;
    var
    hFindFile:Cardinal;
    t,tfile:String;
    sCurDir:String[255];
    FindFileData:WIN32_FIND_DATA;
    begin
    //先保存当前目录
    sCurDir:=GetCurrentDir;
    ChDir(sDirName);
    hFindFile:=FindFirstFile('*.*',FindFileData);
    if hFindFile< >INVALID_HANDLE_VALUE then
    begin
    if not DirectoryExists(sToDirName) then
    ForceDirectories(sToDirName);
    repeat
    tfile:=FindFileData.cFileName;
    if (tfile='.') or (tfile='..') then
    Continue;
    if FindFileData.dwFileAttributes=
    FILE_ATTRIBUTE_DIRECTORY then
    begin
    t:=sToDirName+'\'+tfile;
    if not DirectoryExists(t) then
    ForceDirectories(t);
    if sDirName[Length(sDirName)]< >'\' then
    DoCopyDir(sDirName+'\'+tfile,t)
    else
    DoCopyDir(sDirName+tfile,sToDirName+tfile);
    end
    else
    begin
    t:=sToDirName+'\'+tFile;
    CopyFile(PChar(tfile),PChar(t),True);
    end;
    until FindNextFile(hFindFile,FindFileData)=false;
    FindClose(hFindFile);
    end
    else
    begin
    ChDir(sCurDir);
    result:=false;
    exit;
    end;
    //回到原来的目录下
    ChDir(sCurDir);
    result:=true;
    end;
       1.2拷贝目录的函数:CopyDir function CopyDir(sDirName:String;
    sToDirName:string):Boolean;
    begin
    if Length(sDirName)< =0 then
    exit;
    //拷贝...
    Result:=DoCopyDir(sDirName,sToDirName);
    end;