2017-09-07 3 views
2

Je veux énumérer tous les noms de fichiers existent sous le dossier dans le disque dur avec vb.net, et je ne sais pas how.First, je choisis un dossier avec le composant FolderBrowser, à côté, je liste tous les fichierscomment lister tous les noms de fichiers sous un dossier dans le disque dur?

Voici mon code (uniquement pour choisir un dossier)

dossier_disque.ShowDialog() 
    txt_folder.Text = dossier_disque.SelectedPath 

pour la liste de tous les fichiers, j'ai essayé d'utiliser pour chacun, mais ce n'est pas correct

mon code quand j'ai essayé la liste des fichiers

 Dim files() As String = Directory.GetFiles(txt_folder.Text) 
    For Each a In CStr(files.Count) 
     folder_hard.Rows.Add(Directory.GetFiles(txt_folder.Text)) 
    Next 

folder_hard est un nom de réseau txt_folder est un nom d'un chemin de dossier

Avec ce code, le résultat, je peux voir que le premier fichier deux fois dans la grille

+4

double possible de [Obtenir une liste de tous les fichiers à l'intérieur d'un répertoire dans vb.net] (https://stackoverflow.com/questions/1457525/get-a-list-of-all-files-inside-of-a-directory-in-vb-net) – muffi

+0

même résultat, je modifie mon poste –

+0

Est-ce un devoir et vous ne savez pas comment le faire? ;-) Vous savez, vous parcourez un numéro et pas la liste de fichiers? Par exemple. Si vous avez 587 fichiers dans votre dossier, votre For-loop vous renvoie 3 caractères. '5', '8', '7'! Je pense que vous vouliez parcourir le tableau de fichiers et les ajouter à votre DGV. – muffi

Répondre

2

Il y a un problème avec votre pour chaque boucle : CStr() convertit les valeurs en chaînes. Ainsi, votre boucle for fait défiler chaque caractère dans la chaîne du nombre de fichiers dans le tableau de fichiers. changer donc à:

For Each a In files 

Ensuite, un sera chaque nom de fichier dans le tableau de fichiers. Si vous voulez ajouter chacun à votre réseau, vous devez changer cette ligne à:

folder_hard.Rows.Add(a) 

Donc cela devrait fonctionner:

Dim files() As String = Directory.GetFiles(txt_folder.Text) 
For Each a In files 
    folder_hard.Rows.Add(a) 
Next