Drag and Drop a Folder from Windows Explorer to listBox in C#

后端 未结 2 1252
伪装坚强ぢ
伪装坚强ぢ 2021-02-14 01:12

I succeeded in developing C# code for drag files from windows explorer to listBox.

    // Drag and Drop Files to Listbox
    private void listBox1_DragEnter(obje         


        
2条回答
  •  离开以前
    2021-02-14 01:58

    Your code for DragEnter still applies for folders.

    In the DragDrop event, you retrieve filepaths and folder paths in the same way. If you drag combinations of files and folders, they will all show up in your files array. You just need to determine if the paths are folders or not.

    The following code will retrieve all the paths of all files from the root of all folders dropped, and the paths of all files dropped.

        private void listBox1_DragDrop(object sender, DragEventArgs e)
        {
            List filepaths = new List();
            foreach (var s in (string[])e.Data.GetData(DataFormats.FileDrop, false))
            {
                if (Directory.Exists(s))
                {
                    //Add files from folder
                    filepaths.AddRange(Directory.GetFiles(s));
                }
                else
                {
                    //Add filepath
                    filepaths.Add(s);
                }
            }
        }
    

    Note that only the files in the root of the folders dropped will be collected. If you need to get all files in the folder tree, you'll need to do a bit of recursion to collect them all.

提交回复
热议问题