線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1325
推到 Plurk!
推到 Facebook!

在網路指定的位置copy文件到本機的指定位置

缺席
skc
一般會員


發表:13
回覆:9
積分:4
註冊:2005-05-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-19 01:55:14 IP:202.175.xxx.xxx 未訂閱
求救... 就是把//server/gameslist/setting.ini copy到 c:\gameslist並且覆蓋本地巳經存在的文件 如果可以的話,可不可以先判決2個setting.ini是不是相同,相同的話不要做任何動作,不相同才由網路上copy到本地...
pigbaby
初階會員


發表:2
回覆:84
積分:47
註冊:2002-09-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-19 09:04:05 IP:210.200.xxx.xxx 未訂閱
豬寶寶是比對二個檔案的日期及時間是否相同  如果不符就直接蓋掉
IF FileDateToDateTime(FileAge(SERVER_FILE)) > FileDateToDateTime(FileAge(LOCAL_FILE)) THEN
  BEGIN
     DELETEFILE(LOCAL_FILE);
     CopyFile(PChar(SERVER_FILE),PChar(LOCAL_FILE),false);
  End;
Vicen
高階會員


發表:13
回覆:145
積分:151
註冊:2005-03-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-19 09:10:02 IP:221.226.xxx.xxx 未訂閱
文件复制直接用:
CopyFile('\\server\gameslist\setting.ini','c:\gameslist\setting.ini',false);
//False 选项表示直接覆盖
复制前可以进行判断,判断文件是否存在并一样:
if FileExists('c:\gameslist\setting.ini') then
begin
    //文件存在,判断是否相同,相同时跳过。
    if CompFile('\\server\gameslist\setting.ini','c:\gameslist\setting.ini') then  
        Exit;//相同,跳过。
end;
至于必要文件是否相同,有很多种方法,不建议使用Delphi自带的文件比较函数。你可以去通过读取文件的修改时间及大小来判断。 提供给你一个函数:
function CompFile(File1,File2:String):Boolean;
var
  SearchRec1, SearchRec2 : TSearchRec;
begin
  try
    if (FindFirst(File1,faAnyFile,SearchRec1) = 0)
        and (FindFirst(File2,faAnyFile,SearchRec2) = 0) then
      Result := (SearchRec1.Time=SearchRec2.Time) And (SearchRec1.Size=SearchRec2.Size);
    else
      Result := False;
  finally
    FindClose(SearchRec);
  end;  
end;
最后,还请注意网络权限问题,在复制远程计算机文件时,可能需要先与目标计算机建立连接。请用 WNetAddConnection2 作为关键字在站上搜索,有很多范例哦。 發表人 - vicen 於 2005/05/19 09:16:19 發表人 - vicen 於 2005/05/19 09:17:55
skc
一般會員


發表:13
回覆:9
積分:4
註冊:2005-05-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-19 22:27:10 IP:202.175.xxx.xxx 未訂閱
procedure TForm1.Button2Click(Sender: TObject); begin IF FileDateToDateTime(FileAge(edit2.Text 'Link.ini')) > FileDateToDateTime(FileAge(edit3.Text 'Link.ini')) THEN BEGIN DELETEFILE(edit3.Text 'Link.ini'); CopyFile(PChar(edit2.Text 'Link.ini'),PChar(edit3.Text 'Link.ini'),false); End; listTitle; end; //edit2.text和edit3.text是文件的路徑,例如:c:\game
系統時間:2024-05-14 22:00:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!