Hallo liebe Commies ![]()
Hab da ne kleine aufgabenstellung letztens von meinem Chef bekommen. Bin allerdings nciht so bewandert mit Programmierung in Autoit .
Jedenfalls soll ich ein script schreiben was einen Ordner ausliest und das ganze dann als HTML site wiedergibt.
Die ordnersuche ist rekursiv und hat mir mein Chef ausm Netz geholt, diesen habe ich schonmal auf unsere wünsche abgeändert.
Spoiler anzeigen
;Recursive File Lister
#include <Array.au3>
;Main Programmm anfang
Dim $FolderName = "H:\" ;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]
ScanFolder($FolderName) ;startet die durchsuchung des ortes
_ArrayDisplay ($avArray, "Arrayinhalt")
MsgBox(0,"Done","Folder Scan Complete. Scanned " & $FileCount & " Files") ;Ausgabebox mit Meldung das durchsuchung fertig ist und wieviele dateien/ordner gefunden wurden
;Main Programm ende
MakeIndexFile()
;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"
;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
;code für array
[/autoit] [autoit][/autoit] [autoit]$Search = FileFindFirstFile($SourceFolder & "\*.*") ; ?
[/autoit] [autoit][/autoit] [autoit];schleifenbeginn
While 1
If $Search = -1 Then ;
ExitLoop
EndIf
$File = FileFindNextFile($Search)
If @error Then ExitLoop
$FullFilePath = $SourceFolder & "\" & $File
$FileAttributes = FileGetAttrib($FullFilePath)
If StringInStr($FileAttributes,"D") Then
ScanFolder($FullFilePath)
Else
LogFile($FullFilePath)
EndIf
WEnd
;schleifenende
FileClose($Search)
EndFunc
;ende des durchsuchungvorganges
;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
func MakeIndexFile()
Local $pos = 0
FileWriteLine (@scriptdir & "\filelist.html", "<html>")
FileWriteLine (@scriptdir & "\filelist.html", "<head>")
FileWriteLine (@scriptdir & "\filelist.html", "<title>")
FileWriteLine (@scriptdir & "\filelist.html", "Laufwerkstand von " & $FolderName & "</title>")
FileWriteLine (@scriptdir & "\filelist.html", "</head>")
FileWriteLine (@scriptdir & "\filelist.html", "<body>")
FileWriteLine (@scriptdir & "\filelist.html", "<p>Laufwerkstand von " & $FolderName & "<br>" & "</p>")
while $pos = $blocksize
FileWriteLine (@scriptdir & "\filelist.html", "<p>" & $avArray[$pos] & "<p>")
$pos = $pos + 1
wend
FileWriteLine (@scriptdir & "\filelist.html", "</body>")
FileWriteLine (@scriptdir & "\filelist.html", "</html>")
EndFunc
[/autoit]Jetzt hänge ich nur ein wenig was die auflistung in HTML angeht, derzeitig würd ich versuchen über eine whileschleife das genützte array auslesen und einschreiben, was aber (wie ich beim schreiben des ganzen feststelle) wohl garnicht möglich ist.
Ok, aber jetzt zur frage. hat jemand von euch eine Idee wie das geht das ich die daten aus dem array in den htmlcode einfach übertragen kann.
die auflistung soll so aussehen
Nr. Pfad (hier kommen noch andere informationen später ran, die ich später erfahre)
Vielen Dank schonma für eure Hilfe ![]()
Maurawani
PS: Ja, die Filelist.txt soll er weiter miterzeugen.