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