filelister

  • HI
    Ich hab nen htmlfilelister gefunden: [ gelöst ] Ordnerdurchsuchung und in HTMLsite alles auflisten
    und hab ihn zu einen filelister gemacht: (die eine funktion gelöscht)

    [autoit]

    ;Recursive File Lister
    #include <Array.au3>

    [/autoit][autoit][/autoit][autoit]

    ;Main Programmm anfang
    Dim $FolderName = FileSelectFolder ("Wähle den Ordner aus","") ;Sagt welcher Ort zu durchsuchen ist
    Dim $FileCount = 0 ;setzt den zähler auf 0
    Dim $size = 10
    Dim $used = 0
    Dim $blocksize = 1
    Dim $avArray[$size]

    [/autoit][autoit][/autoit][autoit]

    ScanFolder($FolderName) ;startet die durchsuchung des ortes
    MsgBox(0,"Fertig","Alles fertig :D") ;Ausgabebox mit Meldung das durchsuchung fertig ist und wieviele dateien/ordner gefunden wurden

    [/autoit][autoit][/autoit][autoit]

    ;beginn des durchsuchungvorganges
    Func ScanFolder($SourceFolder) ;
    Local $Search ;initialisiert die variable "Search"
    Local $File ;initialisiert die variable "File"
    Local $FileAttributes ;initialisiert die variable "FileAttributes"
    Local $FullFilePath ;initialisiert die variable "FullFilePath"

    [/autoit][autoit][/autoit][autoit]

    ;code für array

    [/autoit][autoit][/autoit][autoit]

    If $used = $size Then
    $size = $size + $blocksize
    ReDim $avArray [$size]
    EndIf
    $avArray[$used] = $SourceFolder
    $used = $used + 1

    [/autoit][autoit][/autoit][autoit]

    ;code für array

    [/autoit][autoit][/autoit][autoit]

    $Search = FileFindFirstFile($SourceFolder & "\*.*") ; ?

    [/autoit][autoit][/autoit][autoit]

    ;schleifenbeginn
    While 1
    If $Search = -1 Then ;
    ExitLoop
    EndIf

    [/autoit][autoit][/autoit][autoit]

    $File = FileFindNextFile($Search)
    If @error Then ExitLoop

    [/autoit][autoit][/autoit][autoit]

    $FullFilePath = $SourceFolder & "\" & $File
    $FileAttributes = FileGetAttrib($FullFilePath)

    [/autoit][autoit][/autoit][autoit]

    If StringInStr($FileAttributes,"D") Then
    ScanFolder($FullFilePath)
    Else
    LogFile($FullFilePath)
    EndIf

    [/autoit][autoit][/autoit][autoit]

    WEnd
    ;schleifenende

    [/autoit][autoit][/autoit][autoit]

    FileClose($Search)
    EndFunc
    ;ende des durchsuchungvorganges

    [/autoit][autoit][/autoit][autoit]

    ;beginn des vorganges zum schreiben in eine txt datei
    Func LogFile($FileName)
    FileWriteLine(@ScriptDir & "\FileList.txt",$FileName)
    $FileCount += 1
    EndFunc
    ;ende des vorganges zum schreiben in eine txt datei

    [/autoit]

    So jetzt will ich aber das er mir nicht den ganzen pfad angibt, sondern nur ab dem ordner wo man am anfang angibt.
    Wie geht das :D?

    Einmal editiert, zuletzt von 93lucas (28. August 2010 um 16:40)

  • Hallo 93Lucas,

    mach es so:

    Spoiler anzeigen
    [autoit]

    ;Recursive File Lister
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;Main Programmm anfang
    Dim $FolderName = FileSelectFolder ("Wähle den Ordner aus","") ;Sagt welcher Ort zu durchsuchen ist
    Global $hFile = FileOpen(@ScriptDir & "\FileList.txt",2) ;sonst wird bei jedem Durchlauf an das TXT-File angehängt
    FileWriteLine($hFile,"Dateien von " & $FolderName)
    Dim $FileCount = 0 ;setzt den zähler auf 0
    Dim $size = 10
    Dim $used = 0
    Dim $blocksize = 1
    Dim $avArray[$size]

    [/autoit] [autoit][/autoit] [autoit]

    ScanFolder($FolderName) ;startet die durchsuchung des ortes
    FileWriteLine($hFile,"insgesamt " & $FileCount)
    FileClose($hFile)
    MsgBox(0,"Fertig","Alles fertig :D") ;Ausgabebox mit Meldung das durchsuchung fertig ist und wieviele dateien/ordner gefunden wurden
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    ;beginn des durchsuchungvorganges
    Func ScanFolder($SourceFolder) ;
    Local $Search ;initialisiert die variable "Search"
    Local $File ;initialisiert die variable "File"
    Local $FileAttributes ;initialisiert die variable "FileAttributes"
    Local $FullFilePath ;initialisiert die variable "FullFilePath"

    [/autoit] [autoit][/autoit] [autoit]

    ;code für array

    [/autoit] [autoit][/autoit] [autoit]

    If $used = $size Then
    $size = $size + $blocksize
    ReDim $avArray [$size]
    EndIf
    $avArray[$used] = $SourceFolder
    $used = $used + 1

    [/autoit] [autoit][/autoit] [autoit]

    ;code für array

    [/autoit] [autoit][/autoit] [autoit]

    $Search = FileFindFirstFile($SourceFolder & "\*.*") ; ?

    [/autoit] [autoit][/autoit] [autoit]

    ;schleifenbeginn
    While 1
    If $Search = -1 Then ;
    ExitLoop
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $File = FileFindNextFile($Search)
    If @error Then ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    $FullFilePath = $SourceFolder & "\" & $File
    $FileAttributes = FileGetAttrib($FullFilePath)

    [/autoit] [autoit][/autoit] [autoit]

    If StringInStr($FileAttributes,"D") Then
    ScanFolder($FullFilePath)
    Else
    LogFile($FullFilePath)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    WEnd
    ;schleifenende

    [/autoit] [autoit][/autoit] [autoit]

    FileClose($Search)
    EndFunc
    ;ende des durchsuchungvorganges

    [/autoit] [autoit][/autoit] [autoit]

    ;schreibt eine Zeile in die zuvor geöffnete txt-datei
    Func LogFile($FileName)
    FileWriteLine($hFile,StringReplace($FileName,$FolderName,""))
    $FileCount += 1
    EndFunc
    ;ende des vorganges zum schreiben in eine txt datei

    [/autoit]

    mfg autoBert

  • und noch ne frage: (will ned extra wieder thema)
    Wie änder ich die schrägstriche also \ -> /