0
私は今、フォルダの内容を削除するために以下のコードを使用していますが、現在使用している唯一の問題は、ファイルのうち1つが使用中であれば、ソフトウェアのユーザーへの進捗。ポップアップなしでファイルを削除する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_NOCONFIRMATION'を' FOF_NO_UI'に変更したらどうなりますか? – Marcel
@Marcelそれについてもっと知るために何かを試すようなものはありません。 ;) –