Hallo,
ich benötige eine Ordner-Liste aber ohne die Anzeige von den versteckten Ordnern (in meinem Fall sind es folgende, die stören):
$RECYCLE.BIN
RECYCLER
System Volume Information
wie kann ich die aus der Liste rausfiltern?
Hallo,
ich benötige eine Ordner-Liste aber ohne die Anzeige von den versteckten Ordnern (in meinem Fall sind es folgende, die stören):
$RECYCLE.BIN
RECYCLER
System Volume Information
wie kann ich die aus der Liste rausfiltern?
HI!
Möchtest du komplett garkeine Versteckten Ordner in der Liste,oder das diese 3 nicht mit in die Liste gelesen werden, oder möchtest du das sie mit gelesen werden und im Nachhineinein entfernt werden ?
Lg,
Lenny
also wie genau, ist mir im grunde egal ... ich habe es eigentlich so:
ich lasse alle ordner listen und lösche dann die, die mich stören raus. SVI fällt direkt raus, weil da ein @error kommt ...
danach mache ich ...
$ArSearch = _ArraySearch($FolderAr, "RECYCLER")
If $ArSearch = 1 Then
_ArrayDelete($FolderAr, $ArSearch)
$FolderAr[0] = UBound($FolderAr) - 1
EndIf
$ArSearch = _ArraySearch($FolderAr, "$RECYCLE.BIN")
If $ArSearch = 1 Then
_ArrayDelete($FolderAr, $ArSearch)
$FolderAr[0] = UBound($FolderAr) - 1
EndIf
... $RECYCLE.BIN wird durch das obige vorgehen gelöscht, aber der Ordner RECYCLER wird nicht aus dem Array gelöscht ... wieso ?
Ich denke mal das liegt daran, das du abfragst ob das _ArraySearch Resultat 1 ist . Der Eintrag RECYCLER kann auch an einer anderen Stelle als der 1. Stehen.
Aus der Hilfe :
Function _ArraySearch
Return Value
Success: The index that $vValue was found at (ist also Unwahrscheinlich das es genau 1 ist )
Probier mal das :
[autoit]$ArSearch = _ArraySearch($FolderAr, "RECYCLER")
If Not @error Then
_ArrayDelete($FolderAr, $ArSearch)
$FolderAr[0] = UBound($FolderAr) - 1
EndIf
$ArSearch = _ArraySearch($FolderAr, "$RECYCLE.BIN")
If Not @error Then
_ArrayDelete($FolderAr, $ArSearch)
$FolderAr[0] = UBound($FolderAr) - 1
EndIf
#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]$re = __FileListToArray('c:\', '*', 3)
ConsoleWrite(@error & @CRLF)
_ArrayDisplay($re)
Func __FileListToArray($sPath, $sFilter = "*", $iFlag = 0)
Local $hSearch, $sFile, $asFileList[1]
If Not FileExists($sPath) Then Return SetError(1, 1, "")
If (StringInStr($sFilter, "\")) Or (StringInStr($sFilter, "/")) Or (StringInStr($sFilter, ":")) Or (StringInStr($sFilter, ">")) Or (StringInStr($sFilter, "<")) Or (StringInStr($sFilter, "|")) Or (StringStripWS($sFilter, = "") Then Return SetError(2, 2, "")
If Not ($iFlag = 0 Or $iFlag = 1 Or $iFlag = 2 Or $iFlag = 3) Then Return SetError(3, 3, "")
If (StringMid($sPath, StringLen($sPath), 1) = "\") Then $sPath = StringTrimRight($sPath, 1) ; needed for Win98 for x:\ root dir
$hSearch = FileFindFirstFile($sPath & "\" & $sFilter)
If $hSearch = -1 Then Return SetError(4, 4, "")
While 1
$sFile = FileFindNextFile($hSearch)
If @error Then
SetError(0)
ExitLoop
EndIf
If $iFlag = 1 And StringInStr(FileGetAttrib($sPath & "\" & $sFile), "D") <> 0 Then ContinueLoop
If $iFlag = 2 And StringInStr(FileGetAttrib($sPath & "\" & $sFile), "D") = 0 Then ContinueLoop
If $iFlag = 3 And StringInStr(FileGetAttrib($sPath & "\" & $sFile), "D") = 0 Or StringInStr(FileGetAttrib($sPath & "\" & $sFile), "H") <> 0 Then ContinueLoop
$asFileList[0] += 1
If UBound($asFileList) <= $asFileList[0] Then ReDim $asFileList[UBound($asFileList) * 2]
$asFileList[$asFileList[0]] = $sFile
WEnd
FileClose($hSearch)
ReDim $asFileList[$asFileList[0] + 1] ; Trim unused slots
Return $asFileList
EndFunc ;==>__FileListToArray
Mega