13. Dezember 2013 12:21
13. Dezember 2013 12:40
13. Dezember 2013 15:17
13. Dezember 2013 15:20
13. Dezember 2013 15:52
stephan.bosau hat geschrieben: in einer Datenbank gespeichert
13. Dezember 2013 16:13
13. Dezember 2013 18:08
stephan.bosau hat geschrieben:Das ganze soll deshalb in NAV entwickelt werden, weil wir dafür eine (Entwickler-)Lizenz haben, nicht aber für andere Umgebungen.
Function GetFileInfos(QueryPath As String, QuerySubPath As Boolean) As DataSet
Dim pfad, dateiname, dateiname2, dateityp As String
Dim creationdate, accessdate, writedate As DateTime
Dim filesize As Int64
Dim ds As New DataSet
Dim dt As New DataTable("Dateiliste")
dt.Columns.Add("Pfad")
dt.Columns.Add("Dateiname")
dt.Columns.Add("Dateiname2")
dt.Columns.Add("Dateityp")
dt.Columns.Add("FileCreationDate")
dt.Columns.Add("FileAccessDate")
dt.Columns.Add("FileWriteDate")
dt.Columns.Add("FileSize")
Dim row As DataRow
Try
For Each datei As String In System.IO.Directory.GetFiles(QueryPath)
row = dt.NewRow
pfad = System.IO.Path.GetDirectoryName(datei)
row("Pfad") = pfad
dateiname = System.IO.Path.GetFileName(datei)
row("Dateiname") = dateiname
dateiname2 = System.IO.Path.GetFileNameWithoutExtension(datei)
row("Dateiname2") = dateiname2
dateityp = System.IO.Path.GetExtension(datei)
row("Dateityp") = dateityp
creationdate = System.IO.File.GetCreationTime(datei)
row("FileCreationDate") = creationdate
accessdate = System.IO.File.GetLastAccessTime(datei)
row("FileAccessDate") = accessdate
writedate = System.IO.File.GetLastWriteTime(datei)
row("FileWriteDate") = writedate
filesize = My.Computer.FileSystem.GetFileInfo(pfad & "\" & dateiname).Length
row("FileSize") = filesize
dt.Rows.Add(row)
WriteDirectToDB(pfad, dateiname, dateiname2, dateityp, creationdate, accessdate, writedate, filesize)
'WriteDirectToDB(System.IO.Path.GetDirectoryName(datei), System.IO.Path.GetFileName(datei), System.IO.Path.GetFileNameWithoutExtension(datei), System.IO.Path.GetExtension(datei), System.IO.File.GetCreationTime(datei), System.IO.File.GetLastAccessTime(datei), System.IO.File.GetLastWriteTime(datei))
Next
ds.Tables.Add(dt)
If QuerySubPath = True Then
For Each subfolder As String In System.IO.Directory.GetDirectories(QueryPath)
Try
GetFileInfos(subfolder, QuerySubPath)
Catch ex As Exception
End Try
Next
End If
Return ds
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
Function WriteDirectToDB(pfad As String, dateiname As String, dateiname2 As String, dateityp As String, creationdate As DateTime, accessdate As DateTime, writedate As DateTime, filesize As Int64)
' SelectCommand erstellen welches die "Select-Abfrage" gegen die
' Datenbank beinhaltet
Dim myOleDbSelectCommand As New OleDb.OleDbCommand
myOleDbSelectCommand.Connection = myOleDbConnection
myOleDbSelectCommand.CommandText = "insert into dateiliste (Pfad, Dateiname, Dateiname2, Dateityp, FileCreationDate, FileAccessDate,FileWriteDate, FileSize) values ('" & pfad & "', '" & dateiname & "', '" & dateiname2 & "', '" & dateityp & "', '" & creationdate & "', '" & accessdate & "', '" & writedate & "', '" & filesize & "')"
myOleDbSelectCommand.ExecuteNonQuery()
End Function