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.
NB : il y a 20 ans, j'aurais résolu le problème en une seconde si vous voyez ce que je veux dire...
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
Partager