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 :

Manipulation de fichiers


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2014
    Messages : 51
    Par défaut Manipulation de fichiers
    Bonjour,
    Je voudrais récupérer les noms et informations sur un nombre important de fichiers musicaux que je possède (surtout mp3). Dans ce but, j'essaie de fabriquer des listes à partir de clés USB que j'ai fabriquées et qui contiennent un certain nombre de fichiers par interprète.La petite routine jointe (Exécuter2.vb) devrait me permettre cela. Malheureusement, je butte sur une erreur fréquente (pour moi) qui consiste(je suppose) à ne pas bien comprendre la différence entre les "new" et les "pas new" au moment de la déclaration des variables. L'erreur qui s'affiche (System.NullReferenceException*: 'La référence d'objet n'est pas définie à une instance d'un objet.- Fichier a été Nothing.) s'applique au mot "Fichier" sur la ligne qui suit "For Each File...".
    Si quelqu'un voulait bien corriger ma routine et éventuellement me donner quelques explications, je lui en serais infiniment reconnaissant.
    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
    Private Sub Exécuter2ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles Exécuter2ToolStripMenuItem.Click
            Dim Dossier As New IO.DirectoryInfo("K:")
            Dim DocFichiers As IO.FileInfo() = Dossier.GetFiles("*.mp3")
            Dim Fichier As IO.FileInfo()
            Dim Docu As String = "D:\Fichier.txt"
            If System.IO.File.Exists(Docu) = True Then
                Kill(Docu)
            End If    'Efface le fichier "fichier.txt" s'il existe.
            Dim Ecrivain As StreamWriter = New StreamWriter(Docu)
            For Each file In DocFichiers
                Ecrivain.WriteLine("File Name: {0} Size: {1}  ", Fichier.ToString, Fichier.Length)
            Next file
            Ecrivain.Close()
            MsgBox("Tâche effectuée")
        End Sub
    NB : il y a 20 ans, j'aurais résolu le problème en une seconde si vous voyez ce que je veux dire...

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2023
    Messages : 4
    Par défaut
    Dans ton Ecrivain.Writeline tu fais appel à ton objet Fichier mais cette variable n'est pas initialisée.

    De plus cette variable Fichier ne te sert à rien dans ton code, je pense plutôt que dans ton WriteLine c'est la variable file (qui est un fileInfo) et non Fichier que tu voulais utiliser.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 555
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 555
    Par défaut
    pour compléter, ton For each fourni la variable file à l'intérieur de ta boucle, file étant une chaine contenant le chemin du fichier
    donc si tu veux, dans ta boucle, il faut rajouter le traitement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each file In DocFichiers
                Dim Fichier= new IO.FileInfo(file)
                Ecrivain.WriteLine("File Name: {0} Size: {1}  ", Fichier.Name, Fichier.Length)
            Next file
    (il faut dans ce cas supprimer ta ligne 4)

Discussions similaires

  1. Manipulation de fichier (copier, supprimer, déplacer)
    Par Guigui_ dans le forum Général Python
    Réponses: 1
    Dernier message: 21/10/2004, 10h26
  2. Manipulation des fichiers
    Par monsau dans le forum Langage
    Réponses: 7
    Dernier message: 21/09/2004, 17h45
  3. [LG]Manipulation de fichiers
    Par yffick dans le forum Langage
    Réponses: 29
    Dernier message: 10/01/2004, 15h04
  4. Manipulation de fichiers - gestion d'extensions
    Par ulukai dans le forum Linux
    Réponses: 13
    Dernier message: 02/07/2003, 15h28
  5. Réponses: 2
    Dernier message: 18/01/2003, 17h06

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