如何刪除abc*.*的檔案 |
尚未結案
|
will
中階會員 發表:176 回覆:135 積分:62 註冊:2002-04-14 發送簡訊給我 |
|
pental
初階會員 發表:3 回覆:48 積分:30 註冊:2003-09-21 發送簡訊給我 |
|
will
中階會員 發表:176 回覆:135 積分:62 註冊:2002-04-14 發送簡訊給我 |
|
azurecloud
中階會員 發表:52 回覆:108 積分:92 註冊:2003-09-04 發送簡訊給我 |
Hi, will 您好:
請參考這個語法:winexec(pchar('c:\del.bat'),SW_normal);
然後建立一批次檔如下,批次檔要放在 'c:\del.bat' 這裡 @echo off
rem 切記一定要先切換至您要刪檔案的目錄,否則…
d:
rem /q 是不會再問 y/n 直接刪除,這裡刪掉 d: 中所有 abc 開頭的檔
delete abc*.* /q 需切換目錄的理由請見:http://delphi.ktop.com.tw/topic.php?TOPIC_ID=41148
提供另一個方式,希望對您有幫助 ========================
我要努力向上~~[/h5]======================== |
will
中階會員 發表:176 回覆:135 積分:62 註冊:2002-04-14 發送簡訊給我 |
很奇怪
我用
winexec(pchar('del c:\school\db\del*.*'),SW_normal);
都沒有用
不知問題出在哪裡
引言: Hi, will 您好: 請參考這個語法:winexec(pchar('c:\del.bat'),SW_normal); 然後建立一批次檔如下,批次檔要放在 'c:\del.bat' 這裡 @echo off rem 切記一定要先切換至您要刪檔案的目錄,否則… d: rem /q 是不會再問 y/n 直接刪除,這裡刪掉 d: 中所有 abc 開頭的檔 delete abc*.* /q 需切換目錄的理由請見:http://delphi.ktop.com.tw/topic.php?TOPIC_ID=41148 提供另一個方式,希望對您有幫助 ======================== |
will
中階會員 發表:176 回覆:135 積分:62 註冊:2002-04-14 發送簡訊給我 |
引言: 很奇怪 我用 winexec(pchar('del c:\school\db\abc*.*'),SW_normal); 都沒有用 不知問題出在哪裡引言: Hi, will 您好: 請參考這個語法:winexec(pchar('c:\del.bat'),SW_normal); 然後建立一批次檔如下,批次檔要放在 'c:\del.bat' 這裡 @echo off rem 切記一定要先切換至您要刪檔案的目錄,否則… d: rem /q 是不會再問 y/n 直接刪除,這裡刪掉 d: 中所有 abc 開頭的檔 delete abc*.* /q 需切換目錄的理由請見:http://delphi.ktop.com.tw/topic.php?TOPIC_ID=41148 提供另一個方式,希望對您有幫助 ======================== |
azurecloud
中階會員 發表:52 回覆:108 積分:92 註冊:2003-09-04 發送簡訊給我 |
Hi, will 您好:
winexec 是用來執行程式,似乎不支援指令的樣子,所以請您寫成批次檔
的格式。'del c:\school\db\del*.*' 是沒有動作被執行的。
不然的話請參考:DeleteFile(pchar('c:\school\db\DEL.txt'));
這樣可以直接刪檔案。但是不支援 abc*.* 的萬用字元。
還有調用 Windows API 比較奇怪的一點是,若指令寫錯時,程式一樣執行
到底,不會出現錯誤訊息,只是沒有動作而已,可能要仔細的檢查。 ========================
我要努力向上~~[/h5]======================== |
00156
高階會員 發表:45 回覆:195 積分:112 註冊:2002-06-01 發送簡訊給我 |
var sr:TSearchRec; filepath:TFileName; filepath:='C:\SCHOOL\'; if FindFirst(filepath '*.*', faAnyFile, sr) = 0 then begin repeat if sr.Attr and faDirectory = 0 then if MatchesMask(sr.Name,'abc*.*') then begin DeleteFile(filepath sr.Name); end; until FindNext(sr) <> 0; FindClose(sr); end; |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
|
will
中階會員 發表:176 回覆:135 積分:62 註冊:2002-04-14 發送簡訊給我 |
請問如何判斷使用都的作業系統是WinNT 系列或98系列的呢?
引言: under Windows NT and up -->winexec(pchar('cmd /C "del c:\school\db\abc*.*"'),SW_normal); under Windows 95 98 me -->winexec(pchar('command "del c:\school\db\abc*.*"'),SW_normal);發表人 - syntax 於 2003/12/08 04:35:56 |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
elase
一般會員 發表:4 回覆:23 積分:10 註冊:2003-06-05 發送簡訊給我 |
Delphi 的 DeleteFile 函數一次只能刪一個檔案
所以要一個一個找 以下做法類似 00156 大大
var sr:TSearchRec; begin Findclose(sr); if FindFirst('資料夾路徑\abc*.*',faAnyFile,sr) = 0 then begin repeat Deletefile(sr.Name); until FindNext(sr) <> 0 end; Findclose(sr); end;只要是 WinBase 的 programer 免不了都要跟 WinAPI 奮鬥 |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
這樣也成:
procedure TForm1.Button2Click(Sender: TObject); var fos: TSHFileOpStruct; begin with FOS do begin Wnd := Self.Handle; wFunc := FO_DELETE; pFrom := PChar('c:\abc*.*'); pTo := nil; fFlags := FOF_ALLOWUNDO or FOF_SILENT or FOF_NOCONFIRMATION; end; SHFileOperation(FOS); end;--- Everything I say is a lie. |
will
中階會員 發表:176 回覆:135 積分:62 註冊:2002-04-14 發送簡訊給我 |
|
azurecloud
中階會員 發表:52 回覆:108 積分:92 註冊:2003-09-04 發送簡訊給我 |
引言:
-------------------------------------------------------------------------------- syntax 大大不是已提供最簡潔的解法了嗎? under Windows NT and up
-->winexec(pchar('cmd /C "rd c:\school\db /q/s"'),SW_normal); under Windows 95 98 me
-->winexec(pchar('command "deltree c:\school\db /Y"'),SW_normal); 查一下 DOS 下的指令都有囉! -------------------------------------------------------------------------------- ========================
我要努力向上~~[/h5]======================== |
00156
高階會員 發表:45 回覆:195 積分:112 註冊:2002-06-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |