想把当前目录下的文件a.dll
复制a.dll文件拷贝到winnt\system32目录下

解决方案 »

  1.   

    var Path:PChar;
    begin
      GetMem(Path,256);
      GetSystemDirectory(Path,256);
      CopyFile('a.dll',PChar(StrPas(Path)+'\'+'a.dll'),True);
      FreeMem(Path);
    end;
      

  2.   

    看看我這個,你就會明白了,用递归的方法把目錄下面的文件都copy過去:(如果目錄下面你還有目錄,而且不定的話,你就必須得這麼做)
    Strdir:要COPY的目錄
    ToDir:目標目錄
    ...其它的參數你可以不要,改一下我這個函數就可以用了
    Procedure  CopyAllFile(Strdir,ToDir:string;PB:TProgressBar;Memo:Tmemo;var i,M:integer;SB:boolean);      function   ss(s:string):string;
          var j:integer;
              a:string;
          begin
             a:='';
             for j:=length(s) downto 1 do
             begin
                if s[j]='.'  then break;
                a:=s[j]+a;
             end;
             result:=a;
          end;var   sr: TSearchRec;
          FileAttrs: Integer;
          K:Integer;
          rr:string;
    begin
         FileAttrs :=faAnyFile;
         K:=FindFirst(StrDir + '\*.*', faAnyFile, Sr);
         while K = 0 do
         begin
            if (sr.Attr and FileAttrs) = sr.Attr then
            begin
                  if SB Then
                  begin
                   if fileexists(Strdir+'\'+SR.Name) Then
                   begin
                     rr:=ss(sr.Name);
                     
                     MEMO.Lines.Add(Strdir+'\'+SR.Name);                if  copyfile(pchar(Strdir+'\'+SR.Name),pchar(todir+'\'+inttostr(i)+'.'+rr),false) then
                     MEMO.Lines.Strings[memo.Lines.Count-1]:=todir+'\'+SR.Name+'  成功'
                      else MEMO.Lines.Strings[memo.Lines.Count-1]:=todir+'\'+SR.Name+'  失敗';
                    inc(i);
                   End;              end;
            end;        if SB THEN PB.Position:=PB.Position+1;
            inc(M);
            if (sr.Attr and faDirectory > 0) and (Pos(Sr.Name, '..') = 0) then
            CopyAllFile(Strdir + '\'+ Sr.Name,todir,PB,MEMO,I,M,SB); // 遞歸
            K:=FindNext(Sr);
         end;
         findclose(sr);
    end;