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

Groovy Java Discussion :

Dossier à zipper qui est verrouillé


Sujet :

Groovy Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    avril 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 73
    Points : 40
    Points
    40
    Par défaut Dossier à zipper qui est verrouillé
    bonjour,
    dans filemaker un plugin me permet d'executer du groovy
    mon objectif est de zipper un dossier et toute son arborescence, fichiers et sous dossiers compris, puis de supprimer le dossier original
    seulement le quand j'execute le code suivant, le dossier original est verrouillé et je ne peux donc le supprimer.
    ma question est comment le déverrouiller et le supprimer dans le même code ?
    j'ai rajouté zipout.closeEntry() mais sans succès
    j'utilise le code suivant
    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
    37
    38
    // ZipDir ( fm_dirIn ; fm_fileOut )
    // 10_12_23_JR WORKING
    // v1.0
    // adds all of tree from starting directory to zip file
    // adapted from Solomon Duskis, http://www.jroller.com
    // without diacriticals chars (accents) in path name
     
    import java.io.File
    import java.io.FileInputStream
    import java.io.FileOutputStream
    import java.util.zip.ZipEntry
    import java.util.zip.ZipOutputStream
     
    try {
    topDir = new File(fm_dirIn) 
    zipOut = new ZipOutputStream ( new FileOutputStream(fm_fileOut) ); 
     
    topDirLength = topDir.absolutePath.length()
     
    topDir.eachFileRecurse{ file ->
      relPath = file.absolutePath.substring(topDirLength).replace('\\', '/') 
      if ( file.isDirectory() && !relPath.endsWith('/')){
        relPath += "/"
      }
      entry = new ZipEntry(relPath)
      entry.time = file.lastModified()
      zipOut.putNextEntry(entry)
      if( file.isFile() ){
        zipOut << new FileInputStream(file)
        zipOut.closeEntry()
     }
    }
    zipOut.close()
     
    } catch (Exception e) {
    	e.printStackTrace()
    }
    return true

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    avril 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 73
    Points : 40
    Points
    40
    Par défaut
    bon j'ai compris que c'est le new FileInputStream(file) qu'il fallait fermer
    je l'ai fait avec
    ZipoutN = new FileInputStream(file)
    Zipout << ZipoutN
    ZipoutN.close()

    seulement le zip produit n'est pas valide pour windows car il manque le dossier racine, celui qui est à zipper.
    En effet le premier niveau de l'arborescence du zip est vide et j'arrive pas à comprendre pourquoi
    sauriez-vous ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    avril 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 73
    Points : 40
    Points
    40
    Par défaut
    bonsoir
    c'est bon j'ai trouvé tout seul à force de persévérance
    j'ai mis topDirLength = topDir.parent.length()+1 pour avoir le dossier parent aussi
    je mettrais sous peu le code en entier avec la suppression possible du dossier d'origine

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/12/2012, 22h36
  2. XP voir qui est connecté a un dossier partagé
    Par totoche dans le forum Windows XP
    Réponses: 2
    Dernier message: 02/06/2006, 10h55
  3. Réponses: 2
    Dernier message: 19/09/2005, 18h20
  4. Réponses: 2
    Dernier message: 16/10/2003, 18h17
  5. Une table qui existe mais qui est inconnu! ?
    Par Nino dans le forum InterBase
    Réponses: 6
    Dernier message: 13/06/2003, 12h47

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