Что нового

[Файловая система] Как удалить все файлы в определённой папке?

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Код:
#include <File.au3>
 #include <Array.au3>
$aFileList=_FileListToArray( $sFolderFullPatch,'*',0)
_ArrayDisplay($aFileList,'$aFileList')
For $i=1 To UBound($aFileList)-1
   ;FileRecycle ( $sFolderFullPatch & '\'  $aFileList[$i] ) 
   FileRecycle ( $sFolderFullPatch & '\'  & $aFileList[$i] ) 
Next


Удаляю в корзину на всякий случай


Добавлено:
Сообщение автоматически объединено:

Лучше перед циклом добавить строчку :
Код:
If MsgBox(1,'Вопрос ? ','Вы действительно хотите удалить все файлы ?: ') <> 1 Then exit
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Guezt [?]
Если не только файлы, но подпапки с файлами то тут еще глянь:

Приведенный выше мой вариант удалит и подпапки и файлы :
Там была маленькая неточность ,которую я исправил
Код:
#include <File.au3>
#include <Array.au3>
$sFolderFullPatch=@ScriptDir & '\Test' 
$aFileList=_FileListToArray( $sFolderFullPatch,'*',0)
If @error Then 
   MsgBox(0,'Ошибка ','указанная папка не найдена') 
   Exit   
EndIf
_ArrayDisplay($aFileList,'$aFileList')
If MsgBox(1,'Вопрос ? ','Вы действительно хотите удалить все файлы ?: ') <> 1 Then exit
For $i=1 To UBound($aFileList)-1
   FileRecycle ( $sFolderFullPatch & '\' & $aFileList[$i] ) 
Next
 

Guezt

Продвинутый
Сообщения
335
Репутация
82
gregaz
Да, нет все там верно было include массива только добавился (зачем?) , это просто я не так понял код, но если надо будет удалить только все файлы или определенные файлы в папке и подпапках без удаления самих папок и подпапок, то надо делать массив именно файлов для удаления. Я понял, что надо что-то вроде такого т.к. не написано, что надо удалять и подпапки в самой папке (см. название темы):
Код:
#include <File.au3>
$sMask = "*.*" ; маска файлов 
$sFolderFullPatch=@ScriptDir & 'Test' ; папка
 If @error Then
   MsgBox(0,'Ошибка ','указанная папка не найдена')
   Exit
EndIf
 If MsgBox(1,'Вопрос ? ','Вы действительно хотите удалить все файлы ?: ') <> 1 Then exit
 _RecycleFiles($sFolderFullPatch,$sMask)

Func _RecycleFiles($sRoot, $sFile)
    Local $FileList
    $FileList = _FileListToArray($sRoot, $sFile, 1)
    If Not @error Then
        For $i = 1 To $FileList[0]
            FileRecycle($sRoot& '' & $FileList[$i])
        Next
    EndIf
    $FileList = _FileListToArray($sRoot, '*', 2)
    If Not @error Then
        For $i = 1 To $FileList[0]
            _FindFiles($sRoot & '' & $FileList[$i], $sFile)
        Next
    EndIf
EndFunc
 

Guezt

Продвинутый
Сообщения
335
Репутация
82
gregaz
Упс, извиняй, я просто сразу закоментировал эту часть :whistle:
 
Верх