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

Langages de programmation Discussion :

Quel langage pour tester des fichiers/dossiers


Sujet :

Langages de programmation

  1. #1
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Points : 141
    Points
    141
    Par défaut Quel langage pour tester des fichiers/dossiers
    bonjour,

    je dois effectuer dans une partie de mon soft, une comparaison de 2 dossiers se trouvant sur un serveur. Ces 2 dossiers ont une architecture interne identique, mais un des 2 dossiers est tjs à jour par rapport à l'autre, donc je veux en sortir un rapport des fichiers ayant été mis à jour.

    donc d'après vous, quel serait le meilleur langage approprié à ce genre de besoin?
    C++ ?
    java ?
    perl ?

    sachant que je connais les 3, à petite dose certe mais bon, ou le delphi?

    merci par avance

  2. #2
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par Freud44 Voir le message
    bonjour,

    je dois effectuer dans une partie de mon soft, une comparaison de 2 dossiers se trouvant sur un serveur. Ces 2 dossiers ont une architecture interne identique, mais un des 2 dossiers est tjs à jour par rapport à l'autre, donc je veux en sortir un rapport des fichiers ayant été mis à jour.

    donc d'après vous, quel serait le meilleur langage approprié à ce genre de besoin?
    C++ ?
    java ?
    perl ?

    sachant que je connais les 3, à petite dose certe mais bon, ou le delphi?

    merci par avance
    Si tu connais les trois, je dirais Perl.

    Thierry

  3. #3
    Membre confirmé Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Points : 477
    Points
    477
    Par défaut
    Ton soft lui même tu l'écris avec quoi??

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Freud44 Voir le message
    donc d'après vous, quel serait le meilleur langage approprié à ce genre de besoin?
    Le langage avec lequel tu es le plus à l'aise.

  5. #5
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Points : 141
    Points
    141
    Par défaut
    bah j'avais commencé à tafer sur le soft en java (surtout au niveau de l'interface) mais je me rend compte que java n'est pas vraiment pratique à utiliser pour lister des dossiers et les récupérer depuis un lecteur réseau etc...y a des bugs, doncje voulais me retourner vers le développement d'une petite dll éventuellement, et ainsi l'appeler dans le soft java....?

  6. #6
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut
    Salut à tous,

    Citation Envoyé par Freud44 Voir le message
    y a des bugs
    peux-tu spécifier ces bugs ?

  7. #7
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Points : 141
    Points
    141
    Par défaut
    J'utilise un algo récursif pour parcourir un dossier et ses sous dossiers.

    Pour le moment, je testais les capacité de Java pour analyser 2 dossiers d'un de mes serveurs, ces 2 dossiers ont un nom différent mais une architecture interne identique (mêmes sous dossiers...etc).

    Donc en gros, je lis le premier dossier, s'il y a d'autres sous dossiers à l'interieur, je les lis etc...en même temps je le fais sur mon second dossier, et j'en sors un rapport pour voir si les dossiers présent dans le dossier A sont aussi présents dans le dossier B.

    Et en général, le rapport ne sort pas comme il faudrait ou pas du tout...alors que si je scan mon dossier c:/windows par ex, ca fonctionne bien...

  8. #8
    Membre confirmé Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Points : 477
    Points
    477
    Par défaut
    on y verrait plus clair avec un peu de code.

  9. #9
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Points : 141
    Points
    141
    Par défaut
    oki, en gros ca donne ca:

    Je prends avec un JFileChooser un path à analyser, et j'appelle une classe qui me génère un JTree en fonction du chemin d'accès fourni en paramètre(une chaine String):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.out.println("Remplissage du JTree Source"); 	
    				scrollPane_jTreeSource.add(objPrinci.GenerationArbre(getJComboBox_TrueDir().getSelectedItem().toString(),"source"));
    La méthode "GenerationArbre" est la suivante:

    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
    public JTree GenerationArbre(String path,String type){
    		
    		File directory;
    		DefaultMutableTreeNode rootTreeNode = new DefaultMutableTreeNode();
    		JTree arbre;
    		directory = new File(path);
    		arbre = new JTree();
    		
    		if(type == "source"){
    			rootTreeNode.add(GenerationDirectory(directory, "source"));
    			arbre.setModel(new DefaultTreeModel(rootTreeNode,true));
    		}else if(type == "cible"){
    	
    			rootTreeNode.add(GenerationDirectory(directory, "cible"));
    			arbre.setModel(new DefaultTreeModel(rootTreeNode,true));
    		}
    		return arbre;
    		
    	}
    On peut voir dans cette méthode que je récupère un "DefaultMutableTreeNode" avec la méthode "GenerationDirectory", qui se définit par :

    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
    private DefaultMutableTreeNode GenerationDirectory(File repertoire, String type){
    		
    		DefaultMutableTreeNode noeud_directory = new DefaultMutableTreeNode(repertoire,true);
    		File[] liste = null; 
    		int i = 0;
    		
    		liste = repertoire.listFiles();    														//récupération des fichiers et sous rep de root
    		if(liste!=null){
    			
    			for(i = 0; i<liste.length; i++){
    		
    				DefaultMutableTreeNode buffer_tree = null;    									//Création d'un noeud pour y stocker un nom de répertoire
    				if(liste[i].isDirectory()){				 										//Test si l'élement contenu dans liste est un répertoire ou un fichier, 	
    					
    					if(type == "source"){
    						ecritureFichierTxt("Dossier Source :  "+liste[i].getPath(),"C:/source.txt");
    						listeSource.add(liste[i].getPath());
    						buffer_tree = GenerationDirectory(liste[i],"source");						
    					}
    						else if(type == "cible"){
    							ecritureFichierTxt("Dossier Source :  "+liste[i].getPath(),"C:/cible.txt");
    							listeCible.add(liste[i].getPath());
    							buffer_tree = GenerationDirectory(liste[i],"cible");						
    						}	
    				}
    				else{																			// Cas ou buffer est un fichier
    					buffer_tree = new DefaultMutableTreeNode(liste[i],false);
    				}
    				noeud_directory.add(buffer_tree);
    			}
    		}
    		
    		return noeud_directory;
    	}
    Tout ca, fonctionne a merveille, ca reste pas forcément long à exécuter, même si je scanne des répertoires réseaux.

    La suite, par contre pause problème. Après avoir généré mes JTree, j'appelle au niveau de mon ihm une méthode exécutant une comparaison de 2 dossiers:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.out.println("Lancement de CompareFile"); 
    				objPrinci.CompareFile(getJComboBox_TrueDir().getSelectedItem().toString(), getJComboBox_MAJDir().getSelectedItem().toString());
    La méthode CompareFile, recoit en paramètres, les 2 chemins d'accès désiré :

    Voici mon usine à gaz :

    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
    public void CompareFile(String path_source, String path_cible){
    		
    
    		List lst_source = new List();
    		List lst_cible = new List();
    		
    		ecritureFichierTxt("Lancement de la comparaison","C:/Log.txt");			
    		ecritureFichierTxt("Copie du buffer cible","C:/Log.txt");		
    		
    		ecritureFichierTxt("Debut de comparaison de dossiers","C:/Log.txt");	
    				
    		lst_source = listeSource;
    		for(int i=0;i<lst_source.getItemCount();i++){
    			ecritureFichierTxt(lst_source.getItem(i),"C:/rapport_lstSource.txt");
    			ecritureFichierTxt(""+lst_source.getItem(i).substring(path_source.length(),lst_source.getItem(i).length()),"C:/rapport_s.txt");
    		}
    		
    		lst_cible = listeCible;
    		for(int j=0;j<lst_cible.getItemCount();j++){
    			ecritureFichierTxt(lst_cible.getItem(j),"C:/rapport_lstCible.txt");
    			ecritureFichierTxt(""+lst_cible.getItem(j).substring(path_cible.length(),lst_cible.getItem(j).length()),"C:/rapport_.txt");
    		}
    		
    		int cpt_source = lst_source.getItemCount();
    		int cpt_cible = lst_cible.getItemCount();
    		
    		for(int o = 0; o<cpt_source; o++){
    			
    			for(int u = 0; u<cpt_cible; u++){
    					
    					int resultat = lst_source.getItem(o).compareTo(lst_cible.getItem(u));
    					if(resultat == 0)
    						ecritureFichierTxt(lst_source.getItem(o),"C:/tutu.txt");
    				
    			}
    			
    			
    		}

    Je précise que j'utilise des List, pourquoi? tout simplement, car durant la phase ou je génère mes jtree, j'écrivais dans un fichier texte, les noms de path répertoriés (afin de voir si mon algo lisait tous les dossiers ou non) et je stockais dans une List les paths répertoriés, afin de faire la compariason sur les chaines de caractères.

    Donc en gros si chaineA[i] == chaineB[j], le dossier A est à jour par rapport au dossier B....

    Vous me suivez?

Discussions similaires

  1. Quel langage pour développer des scripts
    Par SergeBl dans le forum Windows
    Réponses: 3
    Dernier message: 26/02/2007, 12h56
  2. Quel langage pour automatiser des calculs acoustiques ?
    Par michael.mytnik dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 04/01/2007, 18h51
  3. Quel langage pour manipuler des entiers très longs ?
    Par mis_dj dans le forum Langages de programmation
    Réponses: 8
    Dernier message: 10/05/2006, 21h12
  4. Quel langage pour envoyer un fichier sur une adresse
    Par dai.kaioh dans le forum Développement
    Réponses: 2
    Dernier message: 02/04/2004, 16h38
  5. quel langage pour créer des "applications" sur 1 s
    Par jaribu dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 30/07/2003, 14h06

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