全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3059
推到 Plurk!
推到 Facebook!

Copy某路徑下的所有內容(該目錄下含文件和目錄)到某個路徑下

尚未結案
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-28 17:49:20 IP:218.80.xxx.xxx 未訂閱
例如:SE目錄下含一些文件和一些子目錄,將SE\*.*包含文件和子目錄Copy到另一個路徑下 ========================= 語言是工具,最重要是如何解決問題。
bruce0211
版主


發表:157
回覆:668
積分:279
註冊:2002-06-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-28 19:35:45 IP:218.164.xxx.xxx 未訂閱
請參考 http://home.kimo.com.tw/bruce0211/ james2003.pas 中就有個 _XCopy()
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-28 20:09:05 IP:203.75.xxx.xxx 未訂閱
這裡也有 http://www.cobbler.idv.tw/dvbbs/dispbbs.asp?BoardID=34&replyID=207&ID=196&skin=1 -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
00156
高階會員


發表:45
回覆:195
積分:112
註冊:2002-06-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-28 20:13:32 IP:61.56.xxx.xxx 未訂閱
或者: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=21934
kaida
中階會員


發表:4
回覆:35
積分:52
註冊:2003-03-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-01-28 22:26:16 IP:218.85.xxx.xxx 未訂閱
//源目錄 Src 和目標目錄 Des 都必須是已經存在的。 procedure CopyDirectory(Src, Des : string); var Files : integer; FSrc, FDes : string; ok : boolean; Search : TSearchRec; begin Files := FindFirst(Src '\*.*', faAnyFile, Search); while Files = 0 do begin if Search.Attr <> faDirectory then begin FSrc := Src '\' Search.Name; FDes := Des '\' Search.Name; ok := CopyFile(PChar(FSrc),PChar(FDes),false); if not ok then ShowMessage('複製文件失敗: ' Search.Name); end else begin if (Search.Name <> '.') and (Search.Name <> '..') then begin ok := CreateDir(Des '\' Search.Name); if not ok then ShowMessage('創建目錄失敗: ' Search.Name) else CopyDirectory(Src '\' Search.Name, Des '\' Search.Name); end; end; Files := FindNext(Search); end; FindClose(Search); end;
bruce0211
版主


發表:157
回覆:668
積分:279
註冊:2002-06-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-01-29 08:46:49 IP:211.21.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/topic.php?topic_id=40942 包含相關的函式 _DelTree() 刪除整個目錄(含子目錄) _Move() 搬移整個目錄(含子目錄) _XCopy() 複製整個目錄(含子目錄) 全部也同時收錄在 http://home.kimo.com.tw/bruce0211/ 之 james2003 中
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-01-29 09:52:10 IP:203.95.xxx.xxx 未訂閱
Hi, 也可以使用 SHFileOperation API 來進行, 請參考:    http://delphi.ktop.com.tw/topic.php?topic_id=25342 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shfileoperation.asp    記得 uses SHELLApi 哦~
procedure TForm1.Button1Click(Sender: TObject);
var
  a: TSHFileOpStruct;
begin
  FillChar(a, SizeOf(TSHFileOpStruct), #0);
  a.Wnd := self.Handle;
  a.wFunc := FO_COPY;
  a.pFrom := 'c:\temp2\2';
  a.pTo := 'd:\test';
  SHFileOperation(a);
end;
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-01-30 10:15:54 IP:218.80.xxx.xxx 未訂閱
謝謝各位的幫助。我學習到很多東西。下面問一個問題 timhuang: 您好。 使用您的方法。 a.pFrom := 'c:\temp2\2'; a.pTo := 'd:\test'; 執行結構是d:\test\2。 我想知道使用TSHFileOpStruct使執行的結果是c:\temp2\2\的所有文件直接Copy到d:\test\,目錄2不要copy進去。謝謝。 ========================= 語言是工具,最重要是如何解決問題。
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-01-30 10:20:28 IP:218.80.xxx.xxx 未訂閱
各位好! 如果想實現進一步的功能。 1、僅僅copy某目錄下的子目錄(子目錄下含多級子目錄和文件)。 2、僅僅copy某目錄下的文件,而不copy子目錄。 3、僅僅copy某目錄下指定後綴的文件。 ========================= 語言是工具,最重要是如何解決問題。
bruce0211
版主


發表:157
回覆:668
積分:279
註冊:2002-06-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-01-30 10:35:57 IP:211.21.xxx.xxx 未訂閱
長官好 前面我有介紹過的 _XCopy(),_Move(),全部都由 Deltree() 演化而來 (看三個函式的程式碼類似性即知) 我認為您的新問題也脫離不了 _DelTree() 的架構 利用遞迴,過濾掉"要"與"不要"的 您不能舉一反三嗎 ? 想把您自己的座右銘回送給您 "語言是工具,最重要是如何解決問題。" 或是您也可以改成 "問題就讓它仍然是問題,最重要的是如何找到現成工具(API)" 發表人 - bruce0211 於 2004/01/30 10:42:17
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-01-30 11:15:36 IP:218.80.xxx.xxx 未訂閱
bruce0211: 您說的話很讓人回味,謝謝教誨。 “_XCopy(),_Move(),全部都由 Deltree() 演化而來”,我還沒有認真研讀過城式碼。我馬上會去看。 ========================= 語言是工具,最重要是如何解決問題。
bruce0211
版主


發表:157
回覆:668
積分:279
註冊:2002-06-13

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-01-30 11:29:28 IP:211.21.xxx.xxx 未訂閱
教誨不敢 只是覺得很多特殊的應用除了自己解決外 不要想說有現成的 API 可幫你處理 XCopy,Move,DelTree 是三個在 dos(或稱命令列)模式下常用的指令 XCopy : 複製所有目錄(含子目錄) Move:搬移所有目錄(含子目錄) Deltree:刪除所有目錄(含子目錄) 共同點,都有搜尋所有子目錄的功能,只不過看找到目標後 是要搬走,複製,還是刪除 所以我才想說,老一點的人看到就知這三個函式有關聯 但我忽略了現在很多人都不知dos(或稱命令列)模式是啥東東 當然看到我把 XCopy,Move,DelTree 三個函式放在一起 也沒任何感覺 .... 發表人 - bruce0211 於 2004/01/30 11:39:45
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-01-30 14:44:16 IP:203.95.xxx.xxx 未訂閱
引言: timhuang: 您好。 使用您的方法。 a.pFrom := 'c:\temp2\2'; a.pTo := 'd:\test'; 執行結構是d:\test\2。 我想知道使用TSHFileOpStruct使執行的結果是c:\temp2\2\的所有文件直接Copy到d:\test\,目錄2不要copy進去。謝謝。
這樣的話只要將 a.pFrom := 'c:\temp2\2'; 改為 a.pFrom := 'c:\temp2\2\*.*'; 即可!
系統時間:2024-05-01 5:49:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!