2

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

我搜索了无数论坛和其他出现在我的 Google 搜索结果中的地方。但是,我找不到我的问题的解决方案。

我有一个 FileExplorer,并且我的 Context Menu Strip 组件中有菜单项 Copy/Paste/Delete。现在,我在文件资源管理器中复制了文件,但我正在尝试弄清楚如何复制文件夹。

我使用 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);
        }
    }

如果有人能给我有关如何在我的文件资源管理器中复制文件夹的所需指针/代码,我们将不胜感激!

4

2 回答 2

1

VB.NET

Dim f() As String = {"C:\SureFire\TWHomepage"}
Dim d As New DataObject(DataFormats.FileDrop, f)
Clipboard.SetDataObject(d, True)
于 2016-02-04T03:33:58.950 回答
0
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);

    }
}
于 2015-07-10T06:19:58.727 回答