2009-11-10 5 views
3

J'aimerais qu'un utilisateur sélectionne un dossier avec FolderBrowserDialog et que les fichiers soient chargés dans le ListView.Comment charger un fichier de dossiers dans un ListView?

Mon intention est de faire une petite liste de lecture de sorte que je dois modifier quelques propriétés du contrôle ListView que je suppose. Quelles propriétés dois-je définir sur le contrôle?

Comment puis-je obtenir ceci?

Répondre

11

Sûrement il vous suffit de faire ce qui suit:

FolderBrowserDialog folderPicker = new FolderBrowserDialog(); 
    if (folderPicker.ShowDialog() == DialogResult.OK) 
    { 

     ListView1.Items.Clear(); 

     string[] files = Directory.GetFiles(folderPicker.SelectedPath); 
     foreach (string file in files) 
     { 

      string fileName = Path.GetFileNameWithoutExtension(file); 
      ListViewItem item = new ListViewItem(fileName); 
      item.Tag = file; 

      ListView1.Items.Add(item); 

     } 

    } 

ensuite pour obtenir le fichier à nouveau, procédez comme suit sur une presse de bouton ou un autre événement:

if (ListView1.SelectedItems.Count > 0) 
    { 

     ListViewItem selected = ListView1.SelectedItems[0]; 
     string selectedFilePath = selected.Tag.ToString(); 

     PlayYourFile(selectedFilePath); 

    } 
    else 
    { 
     // Show a message 
    } 

Pour un meilleur affichage, réglez votre ListView sur le mode Détails:

ListView1.View = View.Details; 
2

Une fonction de base pourrait ressembler à ceci:

public void DisplayFolder (string folderPath) 
    { 
     string[ ] files = System.IO.Directory.GetFiles(folderPath); 

     for (int x = 0 ; x < files.Length ; x++) 
     { 
      lvFiles.Items.Add(files[x]); 
     } 
    } 
0

Liste item

private void (object sender, EventArgs e) buttonOK_Click_1

{ 

     DirectoryInfo FileNm = new DirectoryInfo(Application.StartupPath); 
     var filename = FileNm.GetFiles("CONFIG_*.csv"); 

// Nom du fichier CONFIG_123.csv, CONFIG_abc.csv, etc

 foreach(FileInfo f in filename) 
     listViewFileNames.Items.Add(f.ToString()); 

    } 
Questions connexes