2013-03-07 214 views
1

我使用C#作爲此試用版的編程語言。將文件夾複製到剪貼板

我搜遍了無數的論壇和其他地方,我的谷歌搜索結果彈出。但是,我找不到解決我的問題。

我有一個FileExplorer,我有我的上下文菜單條組件中的菜單項複製/粘貼/刪除。現在,我有我的文件資源管理器中的文件複製工作,但我試圖找出如何複製文件夾。

我使用TreeView組件作爲我的主要組件,這是綁定到。

什麼是文件資源管理器?以下是我說的(這是我的文件瀏覽器的實際圖像):

enter image description here

這裏是我複製「文件」我的「FileExplorer \」文件夾內當前的代碼。它還檢索'FileExplorer \'文件夾內的其他文件夾/文件。

private void toolStripMenuItemCopy_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      DirectoryInfo[] directories = directoryInfo.GetDirectories(); 
      foreach (FileInfo file in directoryInfo.GetFiles()) // Retrieving the files inside of FileExplorer\ folder 
      { 
       if (file.Exists && file.Name == treeView.SelectedNode.Text) 
       { 
        StringCollection filePath = new StringCollection(); 
        filePath.Add(file.FullName); 
        Clipboard.SetFileDropList(filePath); // Copying the selected (node) file 
       } 
      } 

      if (directories.Length > 0) 
      { 
       foreach (DirectoryInfo directory in directories) // Retrieving the directories inside of the FileExplorer\ folder 
       { 
        foreach (FileInfo file in directory.GetFiles()) // Retreiving all the files inside of the directories 
         if (file.Exists && file.Name == treeView.SelectedNode.Text) 
         { 
          StringCollection filePath = new StringCollection(); 
          filePath.Add(file.FullName); 
          Clipboard.SetFileDropList(filePath); // Copying the selected (node) file 
         } 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 

幫助將不勝感激,如果有人可以給我所需的指針/代碼如何複製我的文件資源管理器內的文件夾!

回答

-1
StringCollection files = Clipboard.GetFileDropList(); 
foreach (string file in files) 
{ 
    if (System.IO.Directory.Exists(file)) 
    { 
     string destPath = info.FullName; 
     FileSystem.CopyDirectory(file, destPath, UIOption.AllDialogs, UICancelOption.DoNothing); 

    } 
} 
+0

請添加一些解釋。解釋爲什麼你的代碼應該工作。 – Nilambar 2015-07-10 06:26:20

+0

不知道該如何解釋。但我們試試吧。在文件和目錄的原始代碼路徑放置在剪貼板上。問題是「如何處理文件夾」,代碼示例分析剪貼板上的所有路徑,選擇文件夾並將文件夾複製到目標路徑。在這種情況下,您自己負責正確的目的地路徑。 – 2015-07-13 06:44:46

1

VB.NET

Dim f() As String = {"C:\SureFire\TWHomepage"} 
Dim d As New DataObject(DataFormats.FileDrop, f) 
Clipboard.SetDataObject(d, True)