Я пишу приложение VBA, которое рекурсивно зацикливает большое количество каталогов. Я использую API FindFirstFile для достижения этого, так как он обеспечивает существенное повышение производительности над FileSystemObject.Удаление предупреждения при использовании DeleteFile API
Чтобы полностью удалить FSO из моего кода, мне нужна программа для удаления файлов. Это привлекло внимание DeleteFile. Хотя у меня есть работа - см. Ниже код - он показывает предупреждение пользователям, спрашивая, хотите ли они удалить файл. Мне нужно удалить это предупреждение, как это возможно с FSO. Application.DisplayAlerts = False не работает в этом случае - скорее всего, потому что это вызов API.
Есть ли способ удалить оповещение?
Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAborted As Boolean
hNameMaps As Long
sProgress As String
End Type
Private Const FO_DELETE = &H3
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
Private Sub TestDelete()
Dim SHDirOp As SHFILEOPSTRUCT
With SHDirOp
.wFunc = FO_DELETE
'.pFrom is file to be deleted, copied, or moved should be
.pFrom = "My Path Here"
'you might also look at adding
End With
'struct (Type) is now properly initialized
'call the function
SHFileOperation SHDirOp
End Sub
Вы пытались «убить» FileName.txt «это работает для меня без предупреждений, без API. – Ahmad