Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Usage =>
- $Path = @AppDataDir&'\Mozilla\Firefox\Profiles'
- $Array = _RecFileListToArray($Path, "*", 0, 1, 0)
- _ArrayDisplay($Array)
- ;------------------------------------------------
- Func _RecFileListToArray($sPath, $sFilter = "*", $iFlag = 0, $iRecur = 0, $iFullPath = 0)
- Local $asFileList[1], $sFullPath
- If Not FileExists($sPath) Then Return SetError(1, 1, "")
- If StringRight($sPath, 1) <> "\" Then $sPath = $sPath & "\"
- If (StringInStr($sFilter, "\")) Or (StringInStr($sFilter, "/")) Or (StringInStr($sFilter, ":")) Or (StringInStr($sFilter, ">")) Or (StringInStr($sFilter, "<")) Or (StringInStr($sFilter, "|")) Or (StringStripWS($sFilter, 8) = "") Then Return SetError(2, 2, "")
- If Not ($iFlag = 0 Or $iFlag = 1 Or $iFlag = 2) Then Return SetError(3, 3, "")
- If Not ($iRecur = 0 Or $iRecur = 1) Then Return SetError(4, 4, "")
- If $iFullPath = 0 Then
- $sFullPath = $sPath
- ElseIf $iFullPath = 1 Then
- $sFullPath = ""
- Else
- Return SetError(5, 5, "")
- EndIf
- _FLTA_Search($sPath, $sFilter, $iFlag, $iRecur, $sFullPath, $asFileList)
- If $asFileList[0] = 0 Then Return SetError(6, 6, "")
- Return $asFileList
- EndFunc ;==>_FileListToArray
- Func _FLTA_Search($sStartFolder, $sFilter, $iFlag, $iRecur, $sFullPath, ByRef $asFileList)
- Local $hSearch, $sFile
- If StringRight($sStartFolder, 1) <> "\" Then $sStartFolder = $sStartFolder & "\"
- ;
- $hSearch = FileFindFirstFile($sStartFolder & $sFilter)
- If $hSearch > 0 Then
- While 1
- $sFile = FileFindNextFile($hSearch)
- If @error Then ExitLoop
- Switch $iFlag
- Case 0
- If $iRecur And StringInStr(FileGetAttrib($sStartFolder & $sFile), "D") <> 0 Then ContinueLoop
- Case 1
- If StringInStr(FileGetAttrib($sStartFolder & $sFile), "D") <> 0 Then ContinueLoop
- Case 2
- If StringInStr(FileGetAttrib($sStartFolder & $sFile), "D") = 0 Then ContinueLoop
- EndSwitch
- If $iFlag = 1 And StringInStr(FileGetAttrib($sStartFolder & $sFile), "D") <> 0 Then ContinueLoop
- If $iFlag = 2 And StringInStr(FileGetAttrib($sStartFolder & $sFile), "D") = 0 Then ContinueLoop
- _FLTA_Add($asFileList, $sFullPath, $sStartFolder, $sFile)
- WEnd
- FileClose($hSearch)
- ReDim $asFileList[$asFileList[0] + 1]
- EndIf
- If $iRecur = 1 Then
- $hSearch = FileFindFirstFile($sStartFolder & "*.*")
- If $hSearch > 0 Then
- While 1
- $sFile = FileFindNextFile($hSearch)
- If @error Then ExitLoop
- If StringInStr(FileGetAttrib($sStartFolder & $sFile), "D") And ($sFile <> "." Or $sFile <> "..") Then
- If $iFlag <> 1 Then _FLTA_Add($asFileList, $sFullPath, $sStartFolder, $sFile)
- _FLTA_Search($sStartFolder & $sFile, $sFilter, $iFlag, $iRecur, $sFullPath, $asFileList)
- EndIf
- WEnd
- FileClose($hSearch)
- EndIf
- EndIf
- EndFunc
- Func _FLTA_Add(ByRef $asFileList, $sFullPath, $sStartFolder, $sFile)
- Local $sAddFolder
- $asFileList[0] += 1
- If UBound($asFileList) <= $asFileList[0] Then ReDim $asFileList[UBound($asFileList) * 2]
- If $sFullPath = "" Then
- $sAddFolder = $sStartFolder
- Else
- $sAddFolder = StringReplace($sStartFolder, $sFullPath, "")
- EndIf
- $asFileList[$asFileList[0]] = $sAddFolder & $sFile
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement