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

如何刪除abc*.*的檔案

尚未結案
will
中階會員


發表:176
回覆:135
積分:62
註冊:2002-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-06 08:46:27 IP:61.221.xxx.xxx 未訂閱
小弟想刪除某一資料夾上 開頭為abc 的所有檔案 在DOS下可以用 del abc*.* 但Delphi 下的DeleteFile 好像只能接受完整的檔名 如abc.db 請問Delphi 有沒有可以刪除abc*.*檔案的方法?
pental
初階會員


發表:3
回覆:48
積分:30
註冊:2003-09-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-06 08:57:51 IP:219.68.xxx.xxx 未訂閱
我想到一個方式,你可以用 FileListBox 先做檔案的篩選,然後再刪除 所有FileListBox 中的檔案。
will
中階會員


發表:176
回覆:135
積分:62
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-06 16:30:48 IP:211.72.xxx.xxx 未訂閱
謝謝    不知道有沒有更簡便的方法?    
引言: 我想到一個方式,你可以用 FileListBox 先做檔案的篩選,然後再刪除 所有FileListBox 中的檔案。
azurecloud
中階會員


發表:52
回覆:108
積分:92
註冊:2003-09-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-06 16:54:50 IP:163.13.xxx.xxx 未訂閱
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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-12-07 05:02:49 IP:211.72.xxx.xxx 未訂閱
很奇怪 我用 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 提供另一個方式,希望對您有幫助 ========================
我要努力向上~~[/h5] ========================
will
中階會員


發表:176
回覆:135
積分:62
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-12-07 05:04:14 IP:211.72.xxx.xxx 未訂閱
引言: 很奇怪 我用 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 提供另一個方式,希望對您有幫助 ========================
我要努力向上~~[/h5] ========================
azurecloud
中階會員


發表:52
回覆:108
積分:92
註冊:2003-09-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-12-07 07:56:03 IP:163.13.xxx.xxx 未訂閱
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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-12-07 11:34:31 IP:61.56.xxx.xxx 未訂閱
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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-12-08 04:31:34 IP:203.222.xxx.xxx 未訂閱
發表人 - syntax 於 2003/12/08 04:33:03
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-12-08 04:32:20 IP:203.222.xxx.xxx 未訂閱
引言: 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
will
中階會員


發表:176
回覆:135
積分:62
註冊:2002-04-14

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-12-08 04:53:45 IP:211.72.xxx.xxx 未訂閱
請問如何判斷使用都的作業系統是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

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-12-08 08:10:38 IP:202.39.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/topic.php?topic_id=18235 http://delphi.ktop.com.tw/topic.php?topic_id=24977 --- Everything I say is a lie.
elase
一般會員


發表:4
回覆:23
積分:10
註冊:2003-06-05

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-12-09 16:15:25 IP:61.219.xxx.xxx 未訂閱
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

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-12-09 19:37:19 IP:202.39.xxx.xxx 未訂閱
這樣也成:
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

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-12-09 19:45:06 IP:211.72.xxx.xxx 未訂閱
請問如何一併刪除某資料夾下的所有的子資料夾呢? (這些資料夾可能不是空的)
azurecloud
中階會員


發表:52
回覆:108
積分:92
註冊:2003-09-04

發送簡訊給我
#16 引用回覆 回覆 發表時間:2003-12-09 20:25:29 IP:163.13.xxx.xxx 未訂閱
引言: --------------------------------------------------------------------------------    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

發送簡訊給我
#17 引用回覆 回覆 發表時間:2003-12-09 21:13:02 IP:61.56.xxx.xxx 未訂閱
引言: 請問如何一併刪除某資料夾下的所有的子資料夾呢? (這些資料夾可能不是空的)
使用遞迴,請參考下面的連結 http://delphi.ktop.com.tw/topic.php?topic_id=21922
系統時間:2024-04-26 15:59:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!