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

API standards et tierces Java Discussion :

Ajouter un fichier à un .tar


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Par défaut Ajouter un fichier à un .tar
    Salut à tous,

    J'ai codé un programme qui ajoute des fichiers à un .tar :
    Code : 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
    File archiveFile = new File(dirname+"/"+tarname);
    FileOutputStream stream = new FileOutputStream(archiveFile);
    TarOutputStream out = new TarOutputStream(stream);
     
    File file = new File(filename);
    TarEntry tarAdd = new TarEntry(file);
    tarAdd.setModTime(file.lastModified());
    tarAdd.setName(filename);
    out.putNextEntry(tarAdd);
    // Write file to archive
    FileInputStream in = new FileInputStream(file);
    while (true) {
          byte buffer[] = new byte[128];
          int nRead = in.read(buffer, 0, buffer.length);
          if (nRead <= 0)
                break;
          out.write(buffer, 0, nRead);
    }
    in.close();				
    out.closeEntry();
     
    // Closing the tar archive
    out.close();
    stream.close();
    Le seul problème, c'est que ce code là écrase toujours le fichier.tar Et j'aimerais que, quand le .tar existe, il ajoute simplement les fichiers au tar, et n'écrase pas l'archive existante...

    Merci d'avance !

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Par défaut
    Ok voici la solution que j'ai trouvée ce matin :

    Code : 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
    File archiveFile = new File(dirname+"/"+tarname);
    FileOutputStream stream = new FileOutputStream("tmp.tar");
    while (true) {
    	byte buffer[] = new byte[128];
    	int nRead = in.read(buffer, 0, buffer.length);
    	if (nRead <= 0)
    		break;
    	stream.write(buffer, 0, nRead);
    }
    stream.flush();
    TarOutputStream out = new TarOutputStream(stream);
     
     
    File file = new File(filename);
    TarEntry tarAdd = new TarEntry(file);
    tarAdd.setModTime(file.lastModified());
    tarAdd.setName(filename);
    out.putNextEntry(tarAdd);
    // Write file to archive
    FileInputStream in = new FileInputStream(file);
    while (true) {
          byte buffer[] = new byte[128];
          int nRead = in.read(buffer, 0, buffer.length);
          if (nRead <= 0)
                break;
          out.write(buffer, 0, nRead);
    }
    in.close();				
    out.closeEntry();
     
    // Closing the tar archive
    out.close();
    stream.close();
    archiveFile.delete();
    File newfile = new File("tmp.tar");
    newfile.renameTo(archiveFile);
    En gros on passe par un fichier "tmp.tar", dans lequel on stocke le contenu du fichier initial, et une fois qu'on a ajouté les nouveaux fichiers à ce fichier temporaire, on supprime l'ancien et on renomme le fichier temporaire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter un fichier dans un Tar sans tout réécrire
    Par XSeb74 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 02/01/2012, 16h51
  2. [vb.net][ressources] ajouter des fichiers ressources
    Par graphicsxp dans le forum Windows Forms
    Réponses: 7
    Dernier message: 20/02/2006, 13h37
  3. Réponses: 1
    Dernier message: 27/10/2005, 10h15
  4. [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
  5. [MFC] Ajout des fichiers récents dans un menu
    Par Choupinou dans le forum MFC
    Réponses: 3
    Dernier message: 20/08/2004, 16h47

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