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

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

Аватара для madmasles

Ветеран


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

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


Цитата Pozia:
чтобы он искал эксели во всех папках что находятся на одном уровне с самим скриптом, и вложенных в этих папках папки »
Код: Выделить весь код
#include <Array.au3>

$aExcel = _FileSearch(@ScriptDir, '*.xlsx', 1)
_ArrayDisplay($aExcel)


Func _FileSearch($sPath, $sFileMask = '*', $iFlag = 0, $iSubdir = 1)
    ;фильтры для поиска нужно указывать через ;
    ;$iFlag = 0 - Файлы и папки (по умолчанию)
    ;$iFlag = 1 - Только файлы
    ;$iFlag = 2 - Только папки
    ;$iSubdir = 1 - Искать во всех подкаталогах (по умолчанию). Возвращает полные пути.
    ;$iSubdir = 0 - Искать только в самой папке. Возвращает только имена файлов(папок).
    Local $sOutBin, $sOut, $aOut, $sRead, $hDir, $sAttrib, $sSubdir, $aMasks

    If StringRight($sPath, 1) == '\' Then
        $sPath = StringTrimRight($sPath, 1)
    EndIf
    If $iSubdir Then
        $sSubdir = ' /S /B'
    Else
        $sSubdir = ' /B'
    EndIf
    Switch $iFlag
        Case 1
            $sAttrib = ' /A-D'
        Case 2
            $sAttrib = ' /AD'
        Case Else
            $sAttrib = ' /A'
    EndSwitch

    $sOut = StringToBinary('0' & @CRLF, 2)
    $aMasks = StringSplit($sFileMask, ';')

    For $i = 1 To $aMasks[0]
        $hDir = Run(@ComSpec & ' /U /C DIR "' & $sPath & '\' & $aMasks[$i] & '"' & $sSubdir & $sAttrib, @SystemDir, @SW_HIDE, 6)
        While 1
            $sRead = StdoutRead($hDir, False, True)
            If @error Then
                ExitLoop
            EndIf
            If $sRead <> "" Then
                $sOut &= $sRead
            EndIf
            Sleep(2)
        WEnd
    Next
    $aOut = StringRegExp(BinaryToString($sOut, 2), '[^\r\n]+', 3)
    If @error Then
        Return SetError(1)
    EndIf
    $aOut[0] = UBound($aOut) - 1
    Return $aOut
EndFunc   ;==>_FileSearch
_FileSearch().
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:13, 05-04-2011 | #11