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

ANT Java Discussion :

Copie de liste de fichier


Sujet :

ANT Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 42
    Points : 44
    Points
    44
    Par défaut Copie de liste de fichier
    Bonjour,


    Je souhaite copier une liste de fichiers spécifiés dans un fichier nommé "file2copy.txt" vers un répertoire X.

    Donc je souhaiterais :
    - soit lire le fichier "file2copy.txt" ligne par ligne et pour chaque ligne faire la copie
    - soit lire le fichier "file2copy.txt" en entier et stocker les noms de fichiers dans des variables et ensuite faire une boucle sur cette variable pour la copie

    Le problème est que je ne vois de tâche ANT me permettant de lire un fichier texte ligne par ligne.

    Et pour ma solution numéro 2, j'ai bien trouvé la tâche "loadproperties" qui me permet de charger mon fichier "file2copy.txt" dans des propriétés nommées fichier.1, fichier.2, etc. mais je ne vois pas comment faire une boucle pour parcourir ces propriétés.


    Avez-vous déjà réalisé un truc dans ce style, ou avez-vous une autre idée ?


    Jemini

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 42
    Points : 44
    Points
    44
    Par défaut
    Bon j'ai créé ma propre tâche

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    je souhaiterai réaliser le même genre de tâche mais je ne vois pas de tâches Ant permettant de lire un fichier ligne par ligne.

    quelqu'un aurait il une solution ?

    merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 42
    Points : 44
    Points
    44
    Par défaut
    Effectivement il n'y a pas de tache ANT permettant de le faire.

    Voici la tâche que j'ai créée si ça peut t'aider
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    package anttask;
     
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.io.InputStreamReader;
     
    import org.apache.tools.ant.BuildException;
    import org.apache.tools.ant.Task;
    import org.apache.tools.ant.taskdefs.Copy;
     
    public class ReadFile extends Task {
     
    	// paramètre pour la tache
    	private String file;
     
    	public void setFile(String file) {
    		this.file = file;
    	}
     
        public void execute() {
        	if ( (file==null) || (file.length()==0) ) {
                throw new BuildException("No file set.");
            }
     
    		//lecture du fichier texte	
    		try{
    			InputStream ips=new FileInputStream(file);
    			InputStreamReader ipsr=new InputStreamReader(ips);
    			BufferedReader br=new BufferedReader(ipsr);
    			String ligne;
    			while ((ligne=br.readLine())!=null){
    				try {
     
    					// traitement de la ligne du fichier
     
    				} catch (Exception e) {
    					log(e.toString());
    		            throw new BuildException(e);
    				}
    			}
    			br.close(); 
    			ipsr.close();
    			ips.close();
    		}		
    		catch (Exception e){
                throw new BuildException("File " + file + " not exists.");
    		}
     
     
        }
     
     
    }

  5. #5
    Invité(e)
    Invité(e)
    Par défaut
    ah ok tu l'as fait en java !
    je ne savais pas que l'on pouvait exécuter un code java dans une tâche ant.

    merci pour la piste

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 42
    Points : 44
    Points
    44
    Par défaut
    Non tu n'as pas compris.

    En fait le code que je t'ai donné c'est le code pour créer une tache ANT.

    Une fois que tu as créé la tâche (classe java héritant de la classe org.apache.tools.ant.Task) et compilée dans un JAR, tu peux ensuite l'utilisée dans tes scripts ANT.


    Par exemple dans un build.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <project name="ReadFileTask" basedir="." default="use">
     
        <target name="use" description="Use the Task" depends="jar">
            <!-- on définit la nouvelle tâche -->
            <taskdef name="readfile" classname="anttask.ReadFile" classpath="${ant.project.name}.jar"/>
            <!-- on utilise la nouvelle tâche -->
            <readfile file="${basedir}\test\fichiersALivrer.txt" todir="c:\temp" />
        </target>
     
     
    </project>

    Cependant tu peux aussi exécuter un programme Java à partir d'un script ANT en utilisant la tâche <JAVA>, tu trouveras la liste des tâches les plus courantes ici

  7. #7
    Invité(e)
    Invité(e)
    Par défaut
    ok !

    du coup j'étais parti sur la réalisation d'un jar spécifique au traitement de fichiers pour l'utiliser dans Ant. Donc ça va je ne m'éloigne pas trop de la solution proposée.

    je vais essayer d'adapter tout cela.

    merci beaucoup pour tes conseils !

    [edit]

    voila comment créer ses propres tâches Ant:
    http://www-igm.univ-mlv.fr/~dr/XPOSE2003/ANT/

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

Discussions similaires

  1. Copie d'une liste de fichiers
    Par guy777 dans le forum Linux
    Réponses: 2
    Dernier message: 06/02/2012, 13h23
  2. Récupérer la liste des fichiers copiés
    Par qmike dans le forum VBScript
    Réponses: 9
    Dernier message: 30/01/2012, 16h09
  3. [XL-2003] Copie de liste déroulante entre plusieurs fichiers
    Par secotine dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 17/01/2012, 22h07
  4. Copie de fichier par ftp et exclure liste de fichiers
    Par nesswaw dans le forum Mac OS X
    Réponses: 4
    Dernier message: 17/01/2012, 13h59
  5. Réponses: 46
    Dernier message: 14/03/2007, 17h47

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