簡體   English   中英

使用Delphi刪除沒有彈出窗口的文件

[英]Delete Files Without Popup's Using Delphi

我正在使用下面的代碼刪除文件夾的內容,我現在唯一的問題是,如果其中一個文件正在使用中,它將彈出一個確認對話框,然后開始向軟件用戶顯示進度。

由於這些是臨時文件,因此用戶的彈出窗口完全使他們感到困惑,並不斷詢問它。

有什么方法可以調整它,以便如果一個文件正在使用中或無法刪除,則該代碼將直接移至下一個文件,而忽略該文件,直到下一次嘗試為止。

procedure DelFilesFromDir(Directory, FileMask: string; DelSubDirs: Boolean);
var
  SourceLst: string;
  FOS: TSHFileOpStruct;
begin
  FillChar(FOS, SizeOf(FOS), 0);
  FOS.Wnd := Application.MainForm.Handle;
  FOS.wFunc := FO_DELETE;
  SourceLst := Directory + '\' + FileMask + #0;
  FOS.pFrom := PChar(SourceLst);
  if not DelSubDirs then
    FOS.fFlags := FOS.fFlags OR FOF_FILESONLY;
  FOS.fFlags := FOS.fFlags OR FOF_NOCONFIRMATION;
  SHFileOperation(FOS);
end;

為了避免遇到錯誤時顯示任何對話框,您應該添加FOF_NOERRORUI作為附加標志。

另外,如果您想完全隱藏有關文件操作進度的信息,則可以添加FOF_NO_UI標志。

您可以在SHFileOperation()官方文檔中閱讀有關可能標記的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM