怎樣可以把 c:\aaa\*.wfr copy 到c:\bbb |
尚未結案
|
chrislao
初階會員 發表:86 回覆:69 積分:36 註冊:2002-12-28 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
chrislao
初階會員 發表:86 回覆:69 積分:36 註冊:2002-12-28 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
{usage: CopyDir('C:\Dos', 'D:\Dos');} Procedure CopyDir(Source, Dest: string); var F: TSearchRec; i: integer; begin ForceDirectories(Dest); i := Findfirst(Source '\*.' Ext,faAnyFile,F); while i = 0 do begin if F.Name <> '.' then if F.Name <> '..' then if F.Attr And faDirectory > 0 then CopyDir(Source '\' F.name,Dest '\' F.name, Ext) else CopyFile(Pchar(Source '\' F.name),Pchar(Dest '\' F.name),False); i := FindNext(F); end; FindClose(F); end; {From Hannes Ganser}-- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽 |
banson1716
高階會員 發表:55 回覆:182 積分:167 註冊:2002-04-14 發送簡訊給我 |
uses ShellApi
procedure TForm1.Button1Click(Sender: TObject);
var
OpStruc: TSHFileOpStruct;
frombuf, tobuf: Array [0..128] of Char;
Begin
FillChar(frombuf, Sizeof(frombuf), 0);
FillChar(tobuf, Sizeof(tobuf), 0);
StrPCopy(frombuf, 'L:\E-Book電子書\筆記\A\*.Htm');
StrPCopy(tobuf, 'L:\E-Book電子書\筆記\temp\');
With OpStruc DO Begin
Wnd:=Handle;
wFunc:=FO_COPY;
pFrom:=@frombuf;
pTo:=@tobuf;
fFlags:=FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
fAnyOperationsAborted:=False;
hNameMappings:=Nil;
lpszProgressTitle:=Nil;
end;
ShFileOperation(OpStruc);
end;
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
banson1716
高階會員 發表:55 回覆:182 積分:167 註冊:2002-04-14 發送簡訊給我 |
|
lazygirl
一般會員 發表:1 回覆:10 積分:2 註冊:2003-01-27 發送簡訊給我 |
|
yamapig
一般會員 發表:12 回覆:47 積分:21 註冊:2002-03-26 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
引言: 那請問一下如果不是單一檔案而是整個資料夾ㄋ 那又該怎ㄇ做呢??? >>< face="Verdana, Arial, Helvetica"> 注意紅色部份:var FOS :TSHFileOpStruct; begin with FOS do begin Wnd := Self.Handle; wFunc := FO_COPY; pFrom := 'c:\aaa\*.*'; pTo := 'c:\bbb'; fFlags := FOF_NoConfirmMkDir; end; SHFileOperation(FOS); end;-- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽 |
lazygirl
一般會員 發表:1 回覆:10 積分:2 註冊:2003-01-27 發送簡訊給我 |
引言:引言: 那請問一下如果不是單一檔案而是整個資料夾ㄋ 那又該怎ㄇ做呢??? >>< face="Verdana, Arial, Helvetica"> 注意紅色部份:oh~~我試出來嚕 但因為我是要從光碟機COPY至硬碟而每台電腦的光碟機又不一且也不一定只有一台 那我又該怎ㄇ做ㄋ < >< >謝謝您的指導var FOS :TSHFileOpStruct; begin with FOS do begin Wnd := Self.Handle; wFunc := FO_COPY; pFrom := 'c:\aaa\*.*'; pTo := 'c:\bbb'; fFlags := FOF_NoConfirmMkDir; end; SHFileOperation(FOS); end;-- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽 |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
參考: http://bdn.borland.com/article/0,1410,21543,00.html
procedure GetCDROMDrives(list: TStrings); var DriveBits: set of 0..25; Drives,DriveNum: integer; DriveLetter: string; begin list.Clear; Drives := GetLogicalDrives; if Drives <> 0 then begin integer(DriveBits) := Drives; for DriveNum := 0 to 25 do begin if (DriveNum in DriveBits) then begin DriveLetter := char(DriveNum Ord('A')) ':'; if GetDriveType(PChar(DriveLetter)) = DRIVE_CDROM then list.Add(DriveLetter); end; end; end; end;-- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽 |
lazygirl
一般會員 發表:1 回覆:10 積分:2 註冊:2003-01-27 發送簡訊給我 |
引言: 參考: http://bdn.borland.com/article/0,1410,21543,00.htmlprocedure GetCDROMDrives(list: TStrings); var DriveBits: set of 0..25; Drives,DriveNum: integer; DriveLetter: string; begin list.Clear; Drives := GetLogicalDrives; if Drives <> 0 then begin integer(DriveBits) := Drives; for DriveNum := 0 to 25 do begin if (DriveNum in DriveBits) then begin DriveLetter := char(DriveNum Ord('A')) ':'請問一下這裡的A只啥??? if GetDriveType(PChar(DriveLetter)) = DRIVE_CDROM then list.Add(DriveLetter); end; end; end; end;-- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽 |
lazygirl
一般會員 發表:1 回覆:10 積分:2 註冊:2003-01-27 發送簡訊給我 |
引言:引言: 那請問一下如果不是單一檔案而是整個資料夾ㄋ 那又該怎ㄇ做呢??? >>< face="Verdana, Arial, Helvetica"> 注意紅色部份:那在請問一下這裡ㄉPfrom如果是變數呢var FOS :TSHFileOpStruct; begin with FOS do begin Wnd := Self.Handle; wFunc := FO_COPY; pFrom := 'c:\aaa\*.*'; pTo := 'c:\bbb'; fFlags := FOF_NoConfirmMkDir; end; SHFileOperation(FOS); end;-- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽 |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
lazygirl
一般會員 發表:1 回覆:10 積分:2 註冊:2003-01-27 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
lazygirl
一般會員 發表:1 回覆:10 積分:2 註冊:2003-01-27 發送簡訊給我 |
OH~對不起我重新說一次好ㄌ~~
這個程式我是打算放到光碟片上執行ㄉ
首先他會出現一個FORM~~上面有選擇紐
而我希望能夠光碟片一放進去後執行前面說過ㄉFORM後
當選擇到我所設定的按鈕後他能自動把一個特定ㄉ光碟片內的資料夾COPY到電腦的一個已有的資料夾~~這樣不知道夠不夠清楚
光說我就覺得很複雜了~~~真是不好意思
☆∞★☆∞★☆∞★☆∞★☆∞★☆∞★☆∞★☆∞★☆∞★
PS~~~我我之前都沒碰過這程式語言~~~是一個超級新手~~真是不好意思 可是卻臨時需要使用~~ 真是謝謝Hagar板主ㄋ~~
< >< >
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
1.取得所有的 CD-Rom 的磁碟機代號, 加入 ListBox1 中
procedure GetCDROMDrives; var DriveBits: set of 0..25; Drives,DriveNum: integer; DriveLetter: string; begin ListBox1.Clear; Drives := GetLogicalDrives; if Drives <> 0 then begin integer(DriveBits) := Drives; for DriveNum := 0 to 25 do begin if (DriveNum in DriveBits) then begin DriveLetter := char(DriveNum Ord('A')) ':'; if GetDriveType(PChar(DriveLetter)) = DRIVE_CDROM then ListBox1.Items.Add(DriveLetter); end; end; end; end;2.將您要的資料夾名稱與光碟機代號加成一個完整目錄 然後判斷該目錄存不存在, 若存在, 則進行 Copy 目錄的動作 procedure TForm1.Button1Click(Sender: TObject); var i: integer; sDir: string; // 您要的資料夾名稱 FOS :TSHFileOpStruct; begin sDir := 'aaa'; for i := 0 to ListBox1.Items.Count -1 do begin sDir := ListBox1.Items[i] ':' sDir '\'; if DirectoryExists(sDir) then // 該目錄存在 with FOS do begin Wnd := Self.Handle; wFunc := FO_COPY; pFrom := sDir '*.*'; pTo := 'c:\bbb'; fFlags := FOF_NoConfirmMkDir; end; SHFileOperation(FOS); Break; end; end;-- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽 發表人 - hagar 於 2003/01/30 09:18:41 |
lazygirl
一般會員 發表:1 回覆:10 積分:2 註冊:2003-01-27 發送簡訊給我 |
引言: 2.將您要的資料夾名稱與光碟機代號加成一個完整目錄 然後判斷該目錄存不存在, 若存在, 則進行 Copy 目錄的動作procedure TForm1.Button1Click(Sender: TObject); var i: integer; sDir: string; // 您要的資料夾名稱 FOS :TSHFileOpStruct; begin sDir := 'aaa'; for i := 0 to ListBox1.Items.Count -1 do begin sDir := ListBox1.Items[i] ':' sDir '\'; if DirectoryExists(sDir) then // 該目錄存在 with FOS do begin Wnd := Self.Handle; wFunc := FO_COPY; pFrom := sDir '*.*';<---這一行會出錯過不去耶??? >> -- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽 發表人 - >>< face="Verdana, Arial, Helvetica"> △▼△▼謝謝~~~~真是麻煩你嚕★☆★☆ |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
lazygirl
一般會員 發表:1 回覆:10 積分:2 註冊:2003-01-27 發送簡訊給我 |
http://tw.photo.yahoo.com/member/fcgi-bin/photo_show.fcg?ab=ab4&idx=1&ph_id=p35&.r=422268 是可以RUN但按鈕按下去會出現上述圖檔的錯誤呢???
關掉後會停在break;< >< >我太笨嚕~~~
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
引言: begin sDir := 'aaa'; for i := 0 to ListBox1.Items.Count -1 do begin sDir := ListBox1.Items[i] ':\' sDir '\'; if DirectoryExists(sDir) then // 該目錄存在 with FOS do begin Wnd := Self.Handle; wFunc := FO_COPY; pFrom := sDir '*.*';<---這一行會出錯過不去耶??? pTo := 'c:\bbb'; fFlags := FOF_NoConfirmMkDir; end; SHFileOperation(FOS); Break; end;end;這一行會出錯過不去耶??? 仔細看一下sDir '*.*' 是= 磁碟機:\sDir\*.* or= 磁碟機:sDir\*.*
------
====================== 昏睡~ 不昏睡~ 不由昏睡~ |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
lazygirl
一般會員 發表:1 回覆:10 積分:2 註冊:2003-01-27 發送簡訊給我 |
|
Jack0323
初階會員 發表:22 回覆:70 積分:28 註冊:2002-03-13 發送簡訊給我 |
|
garylou
一般會員 發表:1 回覆:3 積分:0 註冊:2003-03-03 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |