vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Idee zu einem Filesammler 
Autor: Manfred X
Datum: 14.11.11 16:45

Hast Du den Filesammler mal angeschaut.
In dieser Klasse kannst Du eine Liste von
Dateien im Konstruktor angeben - und die DateiInhalte
werden geladen und stehen zur Verfügung (GetText(Index)).
Per Laden/Speichern können die Inhalte in eine Datei
serialisiert werden.
Wenn man die Gzipstream-Kompression einbaut, ist die Klasse
ähnlich einem ZIP-File, aber einfach zu handhaben.
Imports System.IO.Compression
 
<Serializable()> _
Public Class cFileSammler
 
    Dim _Filebytes()() As Byte
    Dim _Filenames() As String
    Dim _IsCompressed() As Boolean
 
    Public Sub New(ByVal ParamArray Files() As String)
 
        ReDim _Filebytes(UBound(Files))
        ReDim _Filenames(UBound(Files))
        ReDim _IsCompressed(UBound(Files))
 
        For i As Integer = 0 To Files.Length - 1
            Dim sin As New IO.FileStream(Files(i), IO.FileMode.Open, _
              IO.FileAccess.Read)
            Dim memstream As New IO.MemoryStream
            Using Compress As GZipStream = _
                     New GZipStream(memstream, CompressionMode.Compress)
                sin.CopyTo(Compress)
            End Using
            _Filebytes(i) = memstream.ToArray
            If sin.Length < _Filebytes(i).Length * 1.2 Then
                _Filebytes(i) = My.Computer.FileSystem.ReadAllBytes(Files(i))
                _IsCompressed(i) = False
            Else
                _IsCompressed(i) = True
            End If
            _Filenames(i) = Files(i)
            sin.Close() : sin.Dispose()
            memstream.Dispose()
        Next i
    End Sub
 
    Public Function GetFile(ByVal index As Integer) As Byte()
        Return _filebytes(index)
    End Function
 
    Public Function Gettext(ByVal index As Integer, ByVal enc As _
      System.Text.Encoding) As String
        If _IsCompressed(index) Then
            Dim compressed_stream As New IO.MemoryStream(_Filebytes(index))
            Dim decompressed_stream As New IO.MemoryStream
            Using decompress As GZipStream = _
                    New GZipStream(compressed_stream, _
                    CompressionMode.Decompress)
                decompress.CopyTo(decompressed_stream)
            End Using
            Dim decompressed_bytes() As Byte = decompressed_stream.ToArray
            Return New String(enc.GetChars(decompressed_bytes))
        Else
            Return New String(enc.GetChars(_Filebytes(index)))
        End If
    End Function
 
    Public Function GetFileName(ByVal index As Integer) As String
        Return _filenames(index)
    End Function
 
    Public Function Speichern(ByVal File As String) As Boolean
        Try
            Dim fm As New _
              Runtime.Serialization.Formatters.Binary.BinaryFormatter
            Dim fs As New IO.FileStream(File, IO.FileMode.Create)
            fm.Serialize(fs, Me)
            fs.Close() : fs.Dispose()
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function
 
    Public Function Laden(ByVal File As String) As Boolean
        Try
            Dim fm As New _
              Runtime.Serialization.Formatters.Binary.BinaryFormatter
            Dim fs As New IO.FileStream(File, IO.FileMode.Open)
            Dim cFs As cFileSammler = CType(fm.Deserialize(fs), cFileSammler)
            Me._filenames = cFs._filenames
            Me._Filebytes = cFs._Filebytes
            Me._IsCompressed = cFs._IsCompressed
            fs.Close() : fs.Dispose()
            Return True
        Catch
            Return False
        End Try
    End Function
End Class


Beitrag wurde zuletzt am 14.11.11 um 16:46:22 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Dateien wie speichern?1.466Bazi14.11.11 12:51
Re: Dateien wie speichern?931Manfred X14.11.11 13:18
Idee zu einem Filesammler908Manfred X14.11.11 14:27
Re: Idee zu einem Filesammler945Bazi14.11.11 16:38
Re: Idee zu einem Filesammler935Manfred X14.11.11 16:45
Re: Idee zu einem Filesammler898ModeratorFZelle14.11.11 17:06
Re: Idee zu einem Filesammler898Manfred X14.11.11 17:17
Re: Idee zu einem Filesammler888ModeratorFZelle14.11.11 19:07
Re: Idee zu einem Filesammler924Bazi14.11.11 22:17
Re: Idee zu einem Filesammler910ModeratorFZelle14.11.11 22:41
Re: Idee zu einem Filesammler852Bazi15.11.11 16:59
Re: Idee zu einem Filesammler848ModeratorFZelle15.11.11 19:35
Re: Idee zu einem Filesammler909Manfred X14.11.11 23:06
Re: Dateien wie speichern?836Bazi15.11.11 16:56
Re: Dateien wie speichern?848Manfred X15.11.11 17:52

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel