C# 将文件夹复制到剪贴板

C# 将文件夹复制到剪贴板,c#,directory,clipboard,C#,Directory,Clipboard,我正在使用C#作为这次试用的编程语言 我已经搜索了无数论坛和谷歌搜索结果中出现的其他地方。然而,我找不到解决我问题的办法 我有一个FileExplorer,在上下文菜单条组件中有“复制/粘贴/删除”菜单项。现在,我已经在我的文件资源管理器中对文件进行了复制,但我正在尝试找出如何复制文件夹 我正在使用TreeView组件作为我的主要组件,它与之关联 什么是文件浏览器?下面是我要说的(这是我的文件浏览器的实际图像): 这是我当前在“FileExplorer”文件夹中复制“文件”的代码。它还检索“F

我正在使用C#作为这次试用的编程语言

我已经搜索了无数论坛和谷歌搜索结果中出现的其他地方。然而,我找不到解决我问题的办法

我有一个FileExplorer,在上下文菜单条组件中有“复制/粘贴/删除”菜单项。现在,我已经在我的文件资源管理器中对文件进行了复制,但我正在尝试找出如何复制文件夹

我正在使用TreeView组件作为我的主要组件,它与之关联

什么是文件浏览器?下面是我要说的(这是我的文件浏览器的实际图像):

这是我当前在“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);
        }
    }

如果有人能给我所需的关于如何在我的文件浏览器中复制文件夹的指针/代码,我将不胜感激

VB.NET

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

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

VB.NET

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

请补充一些解释。解释你的代码为什么应该工作。不知道如何解释。但是让我们试试看。在原始代码中,文件和目录的路径放置在剪贴板上。问题是“如何处理文件夹”,代码示例分析剪贴板上的所有路径,选择文件夹并将文件夹复制到目标路径。在这种情况下,您需要自行负责正确的目标路径。请添加一些说明。解释你的代码为什么应该工作。不知道如何解释。但是让我们试试看。在原始代码中,文件和目录的路径放置在剪贴板上。问题是“如何处理文件夹”,代码示例分析剪贴板上的所有路径,选择文件夹并将文件夹复制到目标路径。在这种情况下,您需要自行负责正确的目标路径。