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

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

Новый участник


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

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


есть - ф-ция у Креатора,мне она очень понравилась.Но в чем проблема...


Код: Выделить весь код
Func _FileSearch($sPath, $sMask="*")
    If Not StringInStr(FileGetAttrib($sPath & "\"), "D") Then Return SetError(1, 0, 0)

    Local $hSearch, $sFindNext, $sFilePath, $iPathIsFolder, $i = 0, $sRet = -1
    Local $sRegExpFilter = StringReplace(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 $iPathIsFolder 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
            ElseIf StringRegExp($sFindNext, "(?i)\A" & $sRegExpFilter & "\z") Then
                $sRet = $sFilePath
                ExitLoop
            EndIf
        WEnd

        FileClose($hSearch)
        If $sRet <> -1 Then ExitLoop
    WEnd

    Return SetError(Number($sRet = -1), 0, $sRet)
EndFunc
можно ли както сделать,чтобы ф-ция не останавливалась только на том файле,которая нашла и запоминала путь каждого файла?
для чего мне это : хочетса сделать архив,в котором будут все найдены файлы с полными путями.


потому что пока вот что получилось... :


Код: Выделить весь код
 	 FileCopy(_FileSearch("c:\","test.ini"),"c:\temp.ini")
	 $OF = ("c:\temp.ini")
	_ZipAdd ("c:\temp.zip",$OF)
	 FileDelete ($OF)

но это не очень удачливо просто .
может ктото , чтото посоветует..)


,kkkkkkkk

Последний раз редактировалось Creat0R, 05-02-2010 в 12:01. Причина: Добавлен тег кода


Отправлено: 03:14, 05-02-2010 | #36