2011-05-05 82 views
2

我正在使用列表框控件。我可以在列表框中拖放文件。我爲以上添加了以下代碼。在c列表框中拖放功能#

private void lstPDFFiles_DragEnter(object sender, DragEventArgs e) 
    { 
     //int i; 
     if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
      e.Effect = DragDropEffects.All; 
     else 
      e.Effect = DragDropEffects.None; 

    } 

    private void lstPDFFiles_DragDrop(object sender, DragEventArgs e) 
    { 
     string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false); 
     int i; 
     for (i = 0; i < s.Length; i++) 
      lstPDFFiles.Items.Add(s[i]); 

    } 

這段代碼允許我在列表框中拖放1個文件。但是現在我也想讓用戶拖放一個文件夾。我該怎麼做呢 。感謝先進的很多。請幫忙。

回答

2

這可以幫助你!

if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
     { 
      string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); 
      foreach (string file in files) 
      { 
       if (Directory.Exists(file)) 
       { 
        string[] filenames = Directory.GetFiles(file); 
        foreach (string filename in filenames) 
        { 
         GetFiles(filename); 
        } 
       } 
       GetFiles(file); 
      } 
     } 

    private void GetFiles(string file) 
    { 
     FileInfo fi = new FileInfo(file); 
     listView1.Items.Add(fi.Name); 
     listView1.Items[listView1.Items.Count - 1].SubItems.Add("test"); 
    }