IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Ajouter à l'archive


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 11
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 8
    Par défaut Ajouter à l'archive
    Bonjours,
    Je ne suis peut être pas dans la bonne rubrique, j'essaie de coder sous visual basic express 2010 version gratuite.

    Le probleme que je rencontre est que je dois archiver un grand nombre de fichier éparpillé sur le disque, la taille et le nombre de fichiers ne me permet pas de passer par une copie dans un répertoire avant de les zipper.

    J'ai lu différentes documentation comme celle de 7z, et je n'ai pas trouvé d'option qui me permet d'ajouter des fichiers a l'archive

    Avez vous une dll a me proposer qui me permettrait de le faire ? ( le format de l'archive n'a pas grand importance ( zip,rar,7z,... )

    Une autre solution serait de créer des nodes dans un répertoire vers les fichiers avant de les archiver, mais je n'ai pas trouvé de documentation sur le sujet

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par vahanar Voir le message
    Bonjours,
    Avez vous une dll a me proposer qui me permettrait de le faire ? ( le format de l'archive n'a pas grand importance ( zip,rar,7z,... )
    Il en existe plusieurs, même des gratuites, que je n'ai pas essayées. Tu vas être d'accord que je ne puisse pas en recommander une ou l'autre:

    Quelques gratuites:

    ItextSharp
    Tutoriel ici


    DotNetZip

    sharpcompress


    Et puis le Framework (à partir de 4.5, je pense, permet maintenant de créer des Zip directement, sans bibliothèque externe, à partir de System.io.packaging

    Et puis, fraîchement trouvé, un exemple de zipper un fichier texte en zip avec un mot passe pour VB2010. Tu vas devoir regarder si tu peux l'utiliser sans mot passe et pour d'autres types de fichier.

    Cet exemple est basé sur l'utilisation d'un composant payant (Ultimate Zip)

  3. #3
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Si je ne m'abuse, iTextSharp est juste utile pour les fichiers PDF, je ne crois pas qu'ils aient des fonctionnalites liees aux archives.

    Citation Envoyé par clementmarcotte Voir le message
    Et puis le Framework (à partir de 4.5, je pense, permet maintenant de créer des Zip directement, sans bibliothèque externe, à partir de System.io.packaging
    Je confirme, ca evite d'ajouter une librairie externe et ca fonctionne bien pour des cas simples comme ici. Voir in exemple de code ici : Creating Zip archives in .NET (without an external library like SharpZipLib) :

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Imports System.IO
    Imports System.IO.Packaging
     
    Namespace ZipSample
    	Class Program
    		Shared Sub Main(args As String())
    			AddFileToZip("Output.zip", "C:\Windows\Notepad.exe")
    			AddFileToZip("Output.zip", "C:\Windows\System32\Calc.exe")
    		End Sub
     
    		Private Const BUFFER_SIZE As Long = 4096
     
    		Private Shared Sub AddFileToZip(zipFilename As String, fileToAdd As String)
    			Using zip As Package = System.IO.Packaging.Package.Open(zipFilename, FileMode.OpenOrCreate)
    				Dim destFilename As String = ".\" + Path.GetFileName(fileToAdd)
    				Dim uri As Uri = PackUriHelper.CreatePartUri(New Uri(destFilename, UriKind.Relative))
    				If zip.PartExists(uri) Then
    					zip.DeletePart(uri)
    				End If
    				Dim part As PackagePart = zip.CreatePart(uri, "", CompressionOption.Normal)
    				Using fileStream As New FileStream(fileToAdd, FileMode.Open, FileAccess.Read)
    					Using dest As Stream = part.GetStream()
    						CopyStream(fileStream, dest)
    					End Using
    				End Using
    			End Using
    		End Sub
     
    		Private Shared Sub CopyStream(inputStream As System.IO.FileStream, outputStream As System.IO.Stream)
    			Dim bufferSize As Long = If(inputStream.Length < BUFFER_SIZE, inputStream.Length, BUFFER_SIZE)
    			Dim buffer As Byte() = New Byte(bufferSize - 1) {}
    			Dim bytesRead As Integer = 0
    			Dim bytesWritten As Long = 0
    			While (InlineAssignHelper(bytesRead, inputStream.Read(buffer, 0, buffer.Length))) <> 0
    				outputStream.Write(buffer, 0, bytesRead)
    				bytesWritten += bufferSize
    			End While
    		End Sub
    		Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, value As T) As T
    			target = value
    			Return value
    		End Function
    	End Class
    End Namespace
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Désolé pour ItextSharp. Comme on dit de par chez-nous : "j'étais dans la Lune."

Discussions similaires

  1. [NHibernate] Ajout d'archive seulement dans la base
    Par chddv dans le forum NHibernate
    Réponses: 6
    Dernier message: 22/03/2010, 11h21
  2. Réponses: 5
    Dernier message: 18/02/2009, 09h52
  3. Réponses: 1
    Dernier message: 13/02/2009, 10h13
  4. Unix - commande cpio, ajout fichier à archive
    Par Math38 dans le forum Unix
    Réponses: 1
    Dernier message: 26/08/2008, 20h31
  5. [TPAbbrevia] Problème ajout de fichiers dans archive
    Par Pill_S dans le forum Composants VCL
    Réponses: 4
    Dernier message: 13/10/2005, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo