Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата morgan1991:
как не зная структуру папок и файлов вывести всё в окошке »
Код: Выделить весь код
#include <Array.au3>

$aFilesList = _FileListToArrayEx(@DesktopDir, "*", 1)
_ArrayDisplay($aFilesList)

Func _FileListToArrayEx($sPath, $sMask="*", $iMode=-1) ;$iMode > 0 только папки (маска игнорируется), иначе папки + файлы
    If Not StringInStr(FileGetAttrib($sPath & "\"), "D") Then Return SetError(1, 0, 0)

    Local $hSearch, $sFindNext, $sFilePath, $iPathIsFolder, $i = 0
    Local $sRegExpFilter = StringReplace(StringReplace($sMask, ".", "\."), "*", ".*")
    Local $iMax_Ret_Paths = 10000
    Local $aPathesArr[$iMax_Ret_Paths+1] = [1, $sPath]

    While $i < $aPathesArr[0]
        $i += 1

        $hSearch = FileFindFirstFile($aPathesArr[$i] & "\*")
        If $hSearch = -1 Then ContinueLoop

        While 1
            $sFindNext = FileFindNextFile($hSearch)
            If @error Then ExitLoop

            $sFilePath = $aPathesArr[$i] & "\" & $sFindNext
            $iPathIsFolder = StringInStr(FileGetAttrib($sFilePath & "\"), "D")

            If $iMode <= 0 Or ($iMode > 0 And $iPathIsFolder) Then
                If $iPathIsFolder Or (Not $iPathIsFolder And StringRegExp($sFindNext, "(?i)" & $sRegExpFilter)) Then
                    If $aPathesArr[0] >= $iMax_Ret_Paths Then
                        $iMax_Ret_Paths *= 2
                        ReDim $aPathesArr[$iMax_Ret_Paths+1]
                    EndIf

                    $aPathesArr[0] += 1
                    $aPathesArr[$aPathesArr[0]] = $sFilePath
                EndIf
            EndIf
        WEnd

        FileClose($hSearch)
    Wend

    ReDim $aPathesArr[$aPathesArr[0]+1]
    Return $aPathesArr
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:37, 18-03-2009 | #2