Что нового

Как маской обозначить директрорий

ivsatel

Продвинутый
Сообщения
319
Репутация
84
Версия AutoIt: 3.3.6.1
Описание: Как маской обозначить директорий, то есть как маской обозначить удаляемые файлы понятно:
Код:
FileDelete("c:\1\2\3\*.*")

а вот директорий не понятно, я пишу так:
Код:
DirRemove("c:\1\2\3\*", 1)

но ни чего не получается. Мне нужно чтоб скрипт удалил все поддиректории ниже 3. И ли к примеру так:
Код:
DirRemove("c:\WINDOWS\Temp\*", 1)

Что-бы не затрагивая самого "Temp", а только все что ниже.
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Такой вот способ.
Пример взял из справки.
Код:
$Patch = "d:\Temp\"
$search = FileFindFirstFile($Patch&"*.*")  

; Check if the search was successful
If $search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
EndIf

While 1
    $file = FileFindNextFile($search) 
    If @error Then ExitLoop    
    ;MsgBox(4096, "File:", $file)
    DirRemove($Patch&$file, 1)
WEnd

; Close the search handle
FileClose($search)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
ivsatel
Можно еще так попробовать:
Код:
#include <File.au3>

$aFolderList = _FileListToArray(@TempDir, '*', 2)
If Not IsArray($aFolderList) Then
	MsgBox(0, "", "No Folders Found.")
	Exit
EndIf

For $i = 1 To $aFolderList[0]
	DirRemove(@TempDir & '\' & $aFolderList[$i], 1)
Next
 
Автор
I

ivsatel

Продвинутый
Сообщения
319
Репутация
84
madmasles, Yuriy, спасибо за помощь. На сколько я понял, маски для директорий не существует, что бы указать как в примере с файлами не получится.
 
Верх