2

今回のトライアウトでは、プログラミング言語として C# を使用しています。

Google の検索結果に表示される無数のフォーラムやその他の場所を検索しました。しかし、私は私の質問に対する解決策を見つけることができません。

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

ファイル エクスプローラー内のフォルダーをコピーする方法について、誰かが必要なポインター/コードを教えてくれれば助かります。

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 に答える