Script de lecture d'un export ACP

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-03-2010 09:37 AM
Bonjour,
Voici mon besoin :
J'ai un espace de travail contenant plusieurs sous-espace et fichiers.
Ces fichiers ne sont plus amenés à évoluer, nous aimerions archiver l'ensemble du projet en dehors d'Alfresco.
C'est à dire exporter le tout (arborescence répertoire + fichiers) dans une archive.
Nous avons exporter le tout dans un fichier ACP, le fichier XML contient bien toutes les méta-données mais les fichiers Word sont nommés en contentxx.doc.
Je pense donc créer un script parcourant le fichier XML pour créer l'arborescence de répertoire, puis renommer et replacer les fichiers au bon endroit.
Un tel script a t-il déjà été développé ?
Voici mon besoin :
J'ai un espace de travail contenant plusieurs sous-espace et fichiers.
Ces fichiers ne sont plus amenés à évoluer, nous aimerions archiver l'ensemble du projet en dehors d'Alfresco.
C'est à dire exporter le tout (arborescence répertoire + fichiers) dans une archive.
Nous avons exporter le tout dans un fichier ACP, le fichier XML contient bien toutes les méta-données mais les fichiers Word sont nommés en contentxx.doc.
Je pense donc créer un script parcourant le fichier XML pour créer l'arborescence de répertoire, puis renommer et replacer les fichiers au bon endroit.
Un tel script a t-il déjà été développé ?
Labels:
- Labels:
-
Archive
4 REPLIES 4

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-04-2010 06:00 AM
C'est fait :wink:

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-05-2010 08:53 AM
Mon code n'est pas très propre ni optimisé mais il marche très bien.
Le voici, si ca peut en aider certains :
(dans mon exemple, l'extract ACP s'appelle "FDC2" et il est placé dans un répertoire "Fichiers ACP"
Le voici, si ca peut en aider certains :
(dans mon exemple, l'extract ACP s'appelle "FDC2" et il est placé dans un répertoire "Fichiers ACP"
package job;import java.io.File;import java.util.Iterator;import java.util.List;import java.util.StringTokenizer;import org.jdom.Attribute;import org.jdom.Element;import org.jdom.input.SAXBuilder;public class LectureACP { static String chemin; public static void lireXML(String fichier){ //On crée une instance de SAXBuilder SAXBuilder sxb = new SAXBuilder(); org.jdom.Document document = null; try { //On crée un nouveau document JDOM avec en argument le fichier XML document = sxb.build(new File(fichier)); } catch(Exception e){ System.out.println(e.getMessage()); } Element racine; racine = document.getRootElement(); chemin = ""; List listeRepertoire = racine.getChildren(); Iterator ite = listeRepertoire.iterator(); Element ele; while(ite.hasNext()) { ele = (Element)ite.next(); if(ele.getName().equals("folder")){ List listeSousRepertoire = ele.getChildren(); traiterFolder(listeSousRepertoire); } } } public static void traiterFolder(List liste){ Iterator ite = liste.iterator(); Element ele; while(ite.hasNext()) { ele = (Element)ite.next(); if(ele.getName().equals("associations")){ Element contains = (Element)ele.getChildren().get(0); List listeElements = contains.getChildren(); Iterator ite2 = listeElements.iterator(); Element ele2; while(ite2.hasNext()){ ele2 = (Element)ite2.next(); if(ele2.getName().equals("folder")){ Attribute nom = (Attribute)ele2.getAttributes().get(0); String value = nom.getValue().substring(3); chemin += "\\" + value; List listeSousRepertoire = ele2.getChildren(); File fb = new File("Export" + chemin); fb.mkdir(); traiterFolder(listeSousRepertoire); chemin = chemin.substring(0,chemin.length()-value.length()-1); } if(ele2.getName().equals("content")){ Attribute nom = (Attribute)ele2.getAttributes().get(0); String nomFichier = nom.getValue().substring(3); System.out.println(nomFichier); List listeProprietes = ele2.getChildren(); Iterator ite3 = listeProprietes.iterator(); Element ele3; while(ite3.hasNext()){ ele3 = (Element)ite3.next(); if(ele3.getName().equals("properties")){ List listeProprietes2 = ele3.getChildren(); Iterator ite4 = listeProprietes2.iterator(); Element ele4; while(ite4.hasNext()){ ele4 = (Element)ite4.next(); if(ele4.getName().equals("content")){ StringTokenizer token = new StringTokenizer(ele4.getValue(), "|"); String cheminContent = "Fichiers ACP\\" + token.nextToken().substring(11).replace("/", "\\"); File fichierContent = new File(cheminContent); File cheminDestination = new File("Export" + chemin + "\\" + nomFichier); copier(fichierContent, cheminDestination); } } } } } } } } } public static void main(String[] args) throws Exception { lireXML("Fichiers ACP\\FDC2.xml"); } public static boolean copier( File source, File destination ){ //Methode permettant la copie d'un fichier boolean resultat = false; // Declaration des flux java.io.FileInputStream sourceFile=null; java.io.FileOutputStream destinationFile=null; try { // Création du fichier : destination.createNewFile(); // Ouverture des flux sourceFile = new java.io.FileInputStream(source); destinationFile = new java.io.FileOutputStream(destination); // Lecture par segment de 0.5Mo byte buffer[]=new byte[512*1024]; int nbLecture; while( (nbLecture = sourceFile.read(buffer)) != -1 ) { destinationFile.write(buffer, 0, nbLecture); } // Copie réussie resultat = true; } catch( java.io.FileNotFoundException f ) { } catch( java.io.IOException e ) { } finally { // Quoi qu'il arrive, on ferme les flux try { sourceFile.close(); } catch(Exception e) { } try { destinationFile.close(); } catch(Exception e) { } } return( resultat );} }

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-01-2010 04:21 AM
Bonjour ,
Merci pour le code. Cependant j'arrive pas à le tester.
Voici ce que j'ai fais :
J'ai crée un projet java dans le quel je mis ton script ,
j'ai déposé le fichier xml de l'acp à la racine du projet,
dans un répertoire Fichiers ACP. Mais ça marche pas.
Dite moi si j'ai oublié quels que choses ?
Cordialement.
Merci pour le code. Cependant j'arrive pas à le tester.
Voici ce que j'ai fais :
J'ai crée un projet java dans le quel je mis ton script ,
j'ai déposé le fichier xml de l'acp à la racine du projet,
dans un répertoire Fichiers ACP. Mais ça marche pas.
Dite moi si j'ai oublié quels que choses ?
Cordialement.

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-02-2010 08:18 AM
Bonjour,
Personne n'a testé ce bout coude :?:
Cordialement.
Personne n'a testé ce bout coude :?:
Cordialement.
