Hallo liebe Autoitler...
folgender Code soll eine Verzeichnisübersicht geben und diese in eine MYSQL-Tabelle der Version 3.51 reinpumpen.
für den mysql-connect müsstet ihr nur die Zugangsdaten ändern und die Tabelle bei euch anlegen mit ID_NR (Autoincrement), dateipfad und groesse_in_bytes
Datentypen sind: Int, Varchar, Int
Ziel ist es den Pfad C:\ in die Spalte dateipfad zu bekommen... leider ist es so, dass beim schreiben in die DB der "\" Backslash einfach weg gelassen wird...
Auch ein StringRegExpReplace schafft dem ganzen keine Abhilfe...
Meine Frage jetzt: Geht es nur mit der MYSQL-Version nicht? Oder habe ich irgendwo einen anderen Fehler? Meines erachtens muss ich den StringRegExpReplace garnicht nutzen, da im Array der Pfad ja korrekt angezeigt wird... war aber ein Strohhalm an den ich mich geklammert hatte...
Spoiler anzeigen
#Include <File.au3>
#Include <Array.au3>
#include <_GetFilesFolder_Rekursiv.au3>
#include <MySQL.au3>
hotKeySet("{ESC}", "Terminate")
$pfad = "C:\"
$folder = "app"
$test = _GetFilesFolder_Rekursiv($pfad & $folder, '*', "0")
$SQL = _MySQLConnect("user","password","table_name","IP")
;~ $test2 = StringRegExpReplace("C:\todo\bla\", '\\', '\\')
;~ ConsoleWrite($test2)
For $i = 1 to $test[0]
$insert_datensatz_anlegen = "INSERT INTO fs_owner (ID_NR, dateipfad, groesse_in_bytes) VALUES ('', '" & StringRegExpReplace($test[$i], '\\', '\\') & "','" & _GetExtProperty($test[$i], 1) & "');"
_Query($SQL,$insert_datensatz_anlegen)
Next
Func Terminate()
Exit 0
EndFunc
;~ ===============================================================================
; Function Name: GetExtProperty($sPath,$iProp)
; Description: Returns an extended property of a given file.
; Parameter(s): $sPath - The path to the file you are attempting to retrieve an extended property from.
; $iProp - The numerical value for the property you want returned. If $iProp is is set
; to -1 then all properties will be returned in a 1 dimensional array in their corresponding order.
; The properties are as follows:
; Name = 0
; Size = 1
; Type = 2
; DateModified = 3
; DateCreated = 4
; DateAccessed = 5
; Attributes = 6
; Status = 7
; Owner = 8
; Author = 9
; Title = 10
; Subject = 11
; Category = 12
; Pages = 13
; Comments = 14
; Copyright = 15
; Artist = 16
; AlbumTitle = 17
; Year = 18
; TrackNumber = 19
; Genre = 20
; Duration = 21
; BitRate = 22
; Protected = 23
; CameraModel = 24
; DatePictureTaken = 25
; Dimensions = 26
; Width = 27
; Height = 28
; Company = 30
; Description = 31
; FileVersion = 32
; ProductName = 33
; ProductVersion = 34
; Requirement(s): File specified in $spath must exist.
; Return Value(s): On Success - The extended file property, or if $iProp = -1 then an array with all properties
; On Failure - 0, @Error - 1 (If file does not exist)
; Author(s): Simucal (Simucal@gmail.com)
; Note(s):
;
;===============================================================================
Func _GetExtProperty($sPath, $iProp)
Local $iExist, $sFile, $sDir, $oShellApp, $oDir, $oFile, $aProperty, $sProperty
$iExist = FileExists($sPath)
If $iExist = 0 Then
SetError(1)
Return 0
Else
$sFile = StringTrimLeft($sPath, StringInStr($sPath, "\", 0, -1))
$sDir = StringTrimRight($sPath, (StringLen($sPath) - StringInStr($sPath, "\", 0, -1)))
$oShellApp = ObjCreate ("shell.application")
$oDir = $oShellApp.NameSpace ($sDir)
$oFile = $oDir.Parsename ($sFile)
If $iProp = -1 Then
Local $aProperty[35]
For $i = 0 To 34
$aProperty[$i] = $oDir.GetDetailsOf ($oFile, $i)
Next
Return $aProperty
Else
$sProperty = $oDir.GetDetailsOf ($oFile, $iProp)
If $sProperty = "" Then
Return 0
Else
Return $sProperty
EndIf
EndIf
EndIf
EndFunc ;==>_Get
Alles anzeigen