Hallo zusammen
Ich schreibe gerade ein Script zur Verwaltung meiner Programme auf dem Server. Der Grundgedanke ist, das ich alle Ordner auf dem Server
Aufliste und später Die Pfadie in eine MySQL Datenbank speichere. Dort werden zu jedem Programm noch zusatzinformationen gespeichert (Katigorie, Beschreibung).
Mein Problem ist im Moment, dass ich beim Schreiben, des Arrays immer die selbe Fehlermeldung bekomme. Ich vermute es kommt von
_FileWriteFromArray. bin mir aber nicht ganz sicher.
Zu dem Verzeichnis ist soch zu sagen, dass es etwa 12'000 Tausend Ordner umfasst. also ziemlich gross.
Hier mal ein Auszug von meinem Code, Printscreen der Fehlermeldund und was der Editor so auswirft
Spoiler anzeigen
#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.6.0
Author: Storyteller
Script Function:
Programmverwaltung von instdisk.
Das Progamm ist zur übersicht übder die Programme
auf dem Server gedacht.
#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include "FileConstants.au3"
#include "File.au3"
#Region ### START Koda GUI section ### Form=
$Programmverwaltung = GUICreate("Programmverwaltung instdisk", 451, 264, 194, 113)
$g_beschreibung = GUICtrlCreateGroup("Beschreibung", 8, 80, 433, 137)
$e_beschreibung = GUICtrlCreateEdit("", 16, 100, 417, 105, $ES_READONLY)
GUICtrlSetData(-1, "")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$bt_dir = GUICtrlCreateButton("Verzeichnis öffnen", 8, 224, 137, 33, $WS_GROUP)
$bt_update = GUICtrlCreateButton("Update", 300, 224, 137, 33, $WS_GROUP)
$l_title = GUICtrlCreateLabel("Programmverwaltung", 8, 8, 171, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Group1 = GUICtrlCreateGroup("Programmauswahl", 8, 32, 433, 49)
$c_type = GUICtrlCreateCombo("Typ", 16, 52, 200, 25)
$c_prog = GUICtrlCreateCombo("Programm", 233, 52, 200, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
;~ Case $bt_dir
;~ Call ("_OpenDir")
Case $bt_update
Call ("_Update")
EndSwitch
WEnd
;==============================================================================
; Name: _Update
; Description: Liest rekursiv alle Ordner im Verzeochnis X:\
; aus und speichert sie in ein Textfile
;==============================================================================
Func _Update()
;Auflisten der Verzeichnisse
$ret = _GetFilesFolder_Rekursiv('X:\','', 1, 1)
If IsArray($ret) Then
_FileWriteFromArray("C:\div\autoit\__Programmverwaltung\projekt\path.txt",$ret, 0)
Else
MsgBox(0, 'Fehler', $ret & @CRLF)
ConsoleWriteError( @error)
EndIf
MsgBox(0,"Update","Update erfolgreich")
EndFunc ;==>_Update
;==================================================================================================
; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0]]])
; Description: Rekursive Auflistung von Dateien und/oder Ordnern
; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
; optional: $iRetType 0 gibt Array, 1 gibt String zurück (Einträge @LF-getrennt)
; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;==================================================================================================
Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0)
Global $oFSO = ObjCreate('Scripting.FileSystemObject')
Global $strFiles = ''
If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
If $sExt = -1 Then $sExt = '*'
If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
_ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir)
If $iRetType = 0 Then
Local $aOut
$aOut = StringSplit(StringTrimRight($strFiles,1), @LF)
If $aOut[1] = '' Then
ReDim $aOut[1]
$aOut[0] = 0
EndIf
Return $aOut
Else
Return StringTrimRight($strFiles,1)
EndIf
EndFunc
Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1)
If ($Dir = -1) Or ($Dir = 0) Then
For $file In $Folder.files
If $Ext <> '*' Then
If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
$strFiles &= $file.Path & @LF
Else
$strFiles &= $file.Path & @LF
EndIf
Next
EndIf
For $Subfolder In $Folder.SubFolders
If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & @LF
_ShowSubFolders($Subfolder, $Ext, $Dir)
Next
EndFunc
Spoiler anzeigen
>"C:\Program Files\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\div\autoit\__Programmverwaltung\projekt\main_nc.au3" /autoit3dir "C:\Program Files\AutoIt3" /UserParams
+>16:42:02 Starting AutoIt3Wrapper v.2.0.1.24 Environment(Language:0407 Keyboard:00000807 OS:WIN_7/Service Pack 1 CPU:X64 OS:X86)
>Running AU3Check (1.54.19.0) from:C:\Program Files\AutoIt3
C:\div\autoit\__Programmverwaltung\projekt\main_nc.au3(108,50) : WARNING: $strFiles possibly not declared/created yet
$strFiles &= $file.Path & @LF
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\div\autoit\__Programmverwaltung\projekt\main_nc.au3 - 0 error(s), 1 warning(s)
->16:42:02 AU3Check ended.rc:1
>Running:(3.3.6.1):C:\Program Files\AutoIt3\autoit3.exe "C:\div\autoit\__Programmverwaltung\projekt\main_nc.au3"
0+>16:46:28 AutoIT3.exe ended.rc:0
>Exit code: 0 Time: 266.870
Danke schon im Voraus
So long
Storyteller