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

VB.NET Discussion :

renommer automatiquement 3 fichiers texte définis


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Février 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 99
    Points : 68
    Points
    68
    Par défaut renommer automatiquement 3 fichiers texte définis
    Bonjour,

    Ne vous moquez pas stp, je suis une bille en VB.

    En fait je cherche à faire un petit exécutable VB pour renommer trois fichiers txt avec un nom définis (exemple : Lyon.txt ; Paris.txt ; Marseille.txt) en (LyonL.txt ; ParisP.txt ; MarseilleM.txt)

    Les fichiers seraient déposés dans un répertoire (ex: c:\test\..)

    Le but serait de contrôler dans un premier temps l’existence des trois fichiers avant de les renommer.

    Pour les renommer je sais qu’il faut faire ainsi, mais pour le reste, je suis perdu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    My.Computer.FileSystem.RenameFile("C:\test\Lyon.txt", "LyonL.txt")
    My.Computer.FileSystem.RenameFile("C:\test\Paris.txt", "ParisP.txt")
    My.Computer.FileSystem.RenameFile("C:\test\Marseille.txt", "MarseilleM.txt")
    Merci de votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    Bonjour

    Pour tester l'existence d'un fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     If System.IO.File.Exists("path du fichier") Then
    [...]
    End If
    Nasty

  3. #3
    Membre du Club
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Février 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 99
    Points : 68
    Points
    68
    Par défaut
    L'ideal serait d'utiliser une procédure ou une fonction ??

    ça pourrais donner ça pour une procedure :

    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
    Private Sub RenommerFichier
     
    If System.IO.File.Exists("C:\test\Lyon.txt") Then
    My.Computer.FileSystem.RenameFile("C:\test\Lyon.txt", "LyonL.txt")
    End If
     
    If System.IO.File.Exists("C:\test\Paris.txt") Then
    My.Computer.FileSystem.RenameFile("C:\test\Paris.txt", "ParisP.txt")
    End If
     
    If System.IO.File.Exists("C:\test\Marseille.txt") Then
    My.Computer.FileSystem.RenameFile("C:\test\Marseille.txt", "MarseilleM.txt")
    End If
     
     
    End Sub
    Dans le cas ou le fichier n'existerais pas pourrais-ton mettre par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If System.IO.File.Exists("C:\test\Lyon.txt") Then
    My.Computer.FileSystem.RenameFile("C:\test\Lyon.txt", "LyonL.txt") Else
    MsgBox("Le fichier Lyon.txt n'existe pas dans repertoire test")
    End If

    d'après vous quelle est la meilleure façon de gérer la condition dans le programme que je veux faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF...THEN
    ELSE
    END IF
    ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Try
    'Instruction susceptible de provoquer une erreur.
    Catch
    'Traitement de l'erreur
    Finally
    'Code toujours exécuté
    End Try
    Merci de votre aide.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 349
    Points : 441
    Points
    441
    Par défaut
    salut,

    je pense qu'une fonction qui renvoie un booléen aurait été mieux, non ?

    Edit : Tu peux pas renommer un fichier s'il n'exite pas !!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if not system.io.file.exist(monfichier) then
       msgbox("le fichier n'exsite pas ")
    end if

  5. #5
    Membre du Club Avatar de aus3004
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 74
    Points : 47
    Points
    47
    Par défaut
    Salut, pour renommer comme tu fais mais de manière automatique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each files In My.Computer.FileSystem.GetFiles("C:\Dossier", FileIO.SearchOption.SearchAllSubDirectories, "*txt")
                Dim Fi As New System.IO.FileInfo(files)
                Dim nomfichier As String = GetFileNameWithoutExtension(files) 'Le nom sans l'extension
                Dim monChar0 As Char 'La 1ère lettre du mot
                monChar0 = nomfichier.Chars(0) 'Pour ajouter le P de Paris à la fin de Paris : ParisP.txt
                My.Computer.FileSystem.RenameFile(files, nomfichier + monChar0 + Fi.Extension)
            Next
    bon dev

  6. #6
    Membre du Club
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Février 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 99
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par aus3004 Voir le message
    Salut, pour renommer comme tu fais mais de manière automatique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each files In My.Computer.FileSystem.GetFiles("C:\Dossier", FileIO.SearchOption.SearchAllSubDirectories, "*txt")
                Dim Fi As New System.IO.FileInfo(files)
                Dim nomfichier As String = GetFileNameWithoutExtension(files) 'Le nom sans l'extension
                Dim monChar0 As Char 'La 1ère lettre du mot
                monChar0 = nomfichier.Chars(0) 'Pour ajouter le P de Paris à la fin de Paris : ParisP.txt
                My.Computer.FileSystem.RenameFile(files, nomfichier + monChar0 + Fi.Extension)
            Next
    bon dev

    En fait, les noms de fichier c'était un exemple car le nom de départ ne sera plus le même qu'à l'arrivée : ex : Lyon.txt --> Toto.txt

    merci pour vos réponses qui permettent de voir que plusieurs solutions sont possibles.

  7. #7
    Membre du Club
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Février 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 99
    Points : 68
    Points
    68
    Par défaut Suite ...
    Me revoilà,

    J'ai enfin eu le temps de reprendre mon petit programme.

    Pour repréciser le contexte, ce que j'ai voulu faire c'est afficher un formulaire avec un texte "label" expliquant qu'il faut appuyer sur le bouton "OK" pour renommer des fichiers. Le programme execute alors les actions suivante :
    1) contrôler dans un repertoire que j'ai nommé Test que trois fichiers existent
    si ce n'est pas le cas, j'affiche un message d'erreur propre à chaque fichier.
    2) Si le ou les fichiers existent bien dans le repertoire, je les renomme de façon personnalisée et je quitte le programme

    Mon code fonctionne bien, mais j'aimerais bien savoir SVP, comment fermer automatiquement le formulaire après avoir appuyer sur OK et si vous avez d'autres façons plus optimales et plus pro de faire ce que j'ai fait.

    Je sais par exemple qu'il est possible de faire un message d'erreur général et d'y intégrer uniquement le nom du fichier manquant par une variable.

    Merci de votre aide.


    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
    Public Class Form1
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If System.IO.File.Exists("C:\test\Animal.txt") Then
                My.Computer.FileSystem.RenameFile("C:\test\Animal.txt", "Cheval.txt")
            Else
                MsgBox("Le fichier Animal.txt n'existe pas dans repertoire test")
            End If
            If System.IO.File.Exists("C:\test\Voiture.txt") Then
                My.Computer.FileSystem.RenameFile("C:\test\Voiture.txt", "Porche.txt")
            Else
                MsgBox("Le fichier Voiture.txt n'existe pas dans repertoire test")
            End If
            If System.IO.File.Exists("C:\test\Fleuve.txt") Then
                My.Computer.FileSystem.RenameFile("C:\test\Fleuve.txt", "le Rhône.txt")
            Else
                MsgBox("Le fichier Fleuve.txt n'existe pas dans repertoire test")
            End If
        End Sub
        ' Me.close()
    End Class

  8. #8
    Membre du Club
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Février 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 99
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    Je pense que mon message ci-dessous n'est pas assez clair. En fait je n'ai pas encore terminé le programme. Il me reste encore quelques points à regler et votre aide est la bienvenue.

    J'aimerais bien savoir comment faire fermer le formulaire de ce programme après avoir appuyer sur le bouton "OK" que j'ai crée.

    Avez-vous une façon plus optimale et plus pro de faire ce programme.



  9. #9
    Membre du Club
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Février 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 99
    Points : 68
    Points
    68
    Par défaut
    Mon programme fonctionne maintenant parfaitement bien. Merci Banana32.

    Voici le code pour ceux que ça interresse :

    Code vb : 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
     
    'déclaration d'un tableau de base zéro des fichiers à tester
    Dim ListeFichiersTester() As String = {"Animal.txt", "Voiture.txt", "Fleuve.txt"}
    'déclaration du tableau de base zéro des fichier pour renommage
    Dim ListeFichiersRenommer() As String = {"Cheval.txt", "Proche.txt", "Fleuve.txt"}
    'déclaration du dossier de test
    Dim DossierTest As String = "C:\test\"
    'début de la boucle de test de zéro à la longueur du tableau moins un
    For x As Integer = 0 To ListeFichiersTester.Length - 1
        If My.Computer.FileSystem.FileExists(DossierTest & ListeFichiersTester(x)) Then
            My.Computer.FileSystem.RenameFile(DossierTest & ListeFichiersTester(x), ListeFichiersRenommer(x))
        Else
            MessageBox.Show("Le fichier " & DossierTest & ListeFichiersTester(x) & " n'existe pas!!")
        End If
    Next
    'fermeture de l'application
    Application.Exit()

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

Discussions similaires

  1. Conversion automatique de fichiers texte en fichiers xml
    Par kana83 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 07/10/2008, 09h52
  2. [Upload] Renommer automatiquement un fichier uploadé
    Par eilarod dans le forum Langage
    Réponses: 3
    Dernier message: 14/08/2008, 12h07
  3. Impression automatique de fichiers textes
    Par Mariquiqui dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/05/2008, 23h25
  4. Ouvrir automatiquement un fichier texte à la fin d'un calcul
    Par _Pendragon_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 05/09/2007, 16h11
  5. renommer automatiquement un fichier
    Par shnouf dans le forum Langage
    Réponses: 11
    Dernier message: 21/11/2006, 14h51

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