Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Аватара для madmasles

Ветеран


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

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


socap,
Код: Выделить весь код
$Dir = @ScriptDir & '\AutoIt'

$aFilesAll = _FileSearch($Dir, '*', 1);с учетом подпапок
If @error Then
    MsgBox(16, 'Error', '_FileSearch')
    Exit
EndIf
$sText = 'С учетом подпапок' & @CRLF & 'Папка: ' & $Dir & @CRLF & 'Всего файлов: ' & $aFilesAll[0] & _
        @CRLF & 'На ' & @MDAY & '.' & @MON & '.' & @YEAR & ' ' & @HOUR & ':' & @MIN & @CRLF
For $i = 1 To $aFilesAll[0]
    $sText &= $i & '. ' & $aFilesAll[$i] & @CRLF
Next
$hFile = FileOpen(@ScriptDir & '\FilesAll.txt', 2)
FileWrite($hFile, StringTrimRight($sText, 2))
FileClose($hFile)
$aFiles = _FileSearch($Dir, '*', 1, 0);без учета подпапок
If @error Then
    MsgBox(16, 'Error', '_FileSearch')
    Exit
EndIf
$sText = 'Без учета подпапок' & @CRLF & 'Папка: ' & $Dir & @CRLF & 'Всего файлов: ' & $aFiles[0] & _
        @CRLF & 'На ' & @MDAY & '.' & @MON & '.' & @YEAR & ' ' & @HOUR & ':' & @MIN & @CRLF
For $i = 1 To $aFiles[0]
    $sText &= $i & '. ' & $Dir & '\' & $aFiles[$i] & @CRLF
Next
$hFile = FileOpen(@ScriptDir & '\Files.txt', 2)
FileWrite($hFile, StringTrimRight($sText, 2))
FileClose($hFile)


Func _FileSearch($sPath, $sFileMask = "*", $iFlag = 0, $iSubDir = 1, $iSort = 0)
    ;CreatoR; http://autoit-script.ru/index.php/topic,8266.msg55775
    Local $sOutBin, $sOut, $aOut, $aMasks, $sRead, $hDir, $sAttrib, $sFiles

    If Not StringInStr(FileGetAttrib($sPath), "D") Then
        Return SetError(1, 0, 0)
    EndIf
    If $iSubDir = 1 Then
        $sAttrib &= ' /S'
    EndIf
    If $iSort = 1 Then
        $sAttrib &= ' /O:N'
    EndIf
    Switch $iFlag
        Case 1
            $sAttrib &= ' /A-D'
        Case 2
            $sAttrib &= ' /AD'
        Case Else
            $sAttrib &= ' /A'
    EndSwitch
    $sOut = StringToBinary('0' & @CRLF, 2)
    $sPath = StringRegExpReplace($sPath, '\\+$', '')
    $sFileMask = StringRegExpReplace($sFileMask, '^;+|;+$', '')
    $sFileMask = StringRegExpReplace($sFileMask, ';{2,}', ';')
    $aMasks = StringSplit($sFileMask, ';')
    For $i = 1 To $aMasks[0]
        If StringStripWS($aMasks[$i], 8) = "" Then
            ContinueLoop
        EndIf
        $sFiles &= '"' & $sPath & '\' & $aMasks[$i] & '"'
        If $i < $aMasks[0] Then
            $sFiles &= ';'
        EndIf
    Next
    $hDir = Run(@ComSpec & ' /U /C DIR ' & $sFiles & ' /B' & $sAttrib, @SystemDir, @SW_HIDE, 6)
    While 1
        $sRead = StdoutRead($hDir, False, True)
        If @error Then
            ExitLoop
        EndIf
        If $sRead <> "" Then
            $sOut &= $sRead
        EndIf
        Sleep(10)
    WEnd
    $aOut = StringRegExp(BinaryToString($sOut, 2), '[^\r\n]+', 3)
    If @error Or UBound($aOut) < 2 Then
        Return SetError(2, 0, 0)
    EndIf
    $aOut[0] = UBound($aOut) - 1
    Return $aOut
EndFunc   ;==>_FileSearch
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:57, 03-02-2012 | #4