tags:

views:

315

answers:

2

I'd like to have a user select a folder with the FolderBrowserDialog and have the files loaded into the ListView.

My intention is to make a little playlist of sorts so I have to modify a couple of properties of the ListView control I'm assuming. What properties should I set on the control?

How can I achive this?

A: 

A basic function could look like this:

 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]);
  }
 }
TLiebe
+2  A: 

Surely you just need to do the following:

    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);

        }

    }

Then to get the file out again, do the following on a button press or another event:

    if (ListView1.SelectedItems.Count > 0)
    {

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

        PlayYourFile(selectedFilePath);

    }
    else
    {
        // Show a message
    }

For best viewing, set your ListView to Details Mode:

ListView1.View = View.Details;
GenericTypeTea
I'm having trouble with the first part of your help. The files load well, but they load to the RIGHT. Is there a way for me to have them load in the ListView and show vertically?
Sergio Tapia
I don't understand what you mean? The ListView should list the items one after the other... Or do you mean they're appearing as icons? Is your view set to Details?
GenericTypeTea