Bonjour,
existe il un tag ant qui permet de faire la transformation d'un fichier au format DOS vers le même fichier en format UNIX.
Et si oui quelle en est la synthaxe.
Merci pour votre reponse.
Bonjour,
existe il un tag ant qui permet de faire la transformation d'un fichier au format DOS vers le même fichier en format UNIX.
Et si oui quelle en est la synthaxe.
Merci pour votre reponse.
A ma connaissance le tag n'existe pas sous ant de base. Mais il est possible de créer toi meme des tags ou tu peux faire ce que tu veux,![]()
Finalement après discussion avec un collègue de travail, voici ce que j'ai fait :
J'ai ecrit mon build.xml de la façon suivante :
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"?> <project name="OwnTaskExample" default="main" basedir="."> <taskdef name="dos2unix" classname="com.montravail.atomixplus.Dos2Unix"/> <target name="main"> <dos2unix> <fileset dir="D:/temporaire/johnnymnemonique" includes="**/*.txt"/> </dos2unix> </target> </project>
Puis voici la classe java associée :
ça marche très bien.
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108 package com.sgam.atomixplus; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Vector; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.FileSet; public class Dos2Unix extends Task { // ************************* // Déclaration des attributs // ************************* private static final String SEPARATEUR_FICHIER = System.getProperty("file.separator"); private static final File FICHIER_TEMPORAIRE = new File("F:/DSI/SER/03_MDW/12_Atomix/Livraison/tmp/fichier.tmp"); private Vector aVecteurFichier = new Vector(); // Opération qui recupère le nom du repertoire donnée // dans la balise <dos2unix><fileset> du paramètre dir // et le type de fichier du paramètre includes public void addFileset(FileSet e_listefichier) { aVecteurFichier.add(e_listefichier); } // Opération qui scan tous les fichiers à partir du répertoire // qui a été donné en entrée public void execute() throws BuildException { for (int j=0, l_nbfichier = aVecteurFichier.size() ; j < l_nbfichier; j++) { // Déclaration des objets locaux FileSet l_listefichier = (FileSet)aVecteurFichier.get(j); Project l_projet = getProject(); DirectoryScanner l_repertoirescrute = l_listefichier.getDirectoryScanner(l_projet); String l_nomrepertoire = l_listefichier.getDir(l_projet).getAbsolutePath(); String[] l_tabnomfichier = l_repertoirescrute.getIncludedFiles(); for(int i=0; i < l_tabnomfichier.length; i++) { File l_fichier = new File(l_nomrepertoire+SEPARATEUR_FICHIER+l_tabnomfichier[i]); System.out.println("Conversion de "+l_fichier); try { toUnix(l_fichier); } catch (IOException e) { e.printStackTrace(); System.err.println("La conversion de "+l_fichier+" a échoué"); } } } } // Opération qui fait la conversion d'un fichier du format DOS au format UNIX public void toUnix(File e_fichier) throws IOException { // Déclaration et instanciation du flux entrant et sortant ou canal // de transmission vers le fichier déclaré en entrée FileReader l_fluxent = new FileReader(e_fichier); FileWriter l_fluxsort = new FileWriter(FICHIER_TEMPORAIRE); //Instanciation de l'objet mémoire tampon // associée au flux BufferedReader l_tamponent = new BufferedReader(l_fluxent); String l_ligne = null; boolean l_drapeau = true; l_ligne = l_tamponent.readLine(); while (l_ligne != null) { l_fluxsort.write(l_ligne+"\n"); l_fluxsort.flush(); l_ligne = l_tamponent.readLine(); } // fermeture des flux et des tampons l_fluxent.close(); l_tamponent.close(); l_fluxsort.close(); // Essai de supression de fichier l_drapeau = e_fichier.delete(); if (l_drapeau == false) { throw new IOException("Impossible de supprimer le fichier : "+e_fichier); } // essai de renomage du fichier temporaire l_drapeau = FICHIER_TEMPORAIRE.renameTo(e_fichier); if (l_drapeau == false) { throw new IOException("Impossible de renomer le fichier : "+e_fichier); } } }
Merci pour votre aide.
J'ai trouvé mon bonheur ici :
http://ant.apache.org/manual/CoreTasks/fixcrlf.html
Partager