Clipboard Files

C# で Clipboard を使って、ファイルリストを Copy&Paste します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

ファイルリストを格納

  1. Clipboard にファイルリストを格納する ClipFileSet.cs の全ソースコードです。
    str には実在するファイルをフルパスで設定して下さい。
    /**************************************************/
    /*★ クリップボードにファイルを格納     前田 稔 ★*/
    /**************************************************/
    using System;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Windows.Forms;
    
    class ConsoleMode
    {
        static string[] str = { @"C:\DATA\data.txt", @"C:\DATA\work.txt", @"C:\DATA\Kishi.jpg" };
    
        [STAThread]
        public static int Main()
        {
            System.Collections.Specialized.StringCollection files =
                new System.Collections.Specialized.StringCollection();
            for(int i=0; i<str.Length; i++) files.Add(str[i]);
            Clipboard.SetFileDropList(files);
            return 0;
        }
    }
    
  2. StringCollection files にファイルリストを設定して、Clipboard.SetFileDropList(files); でクリップボードに格納します。
  3. このプログラムを実行してから Windows Explorer を起動して下さい。
    マウスの右クリックから[貼り付け(P)]を選んで、フォルダにファイルが実際に貼り付けられることを確認して下さい。
    そのためにも str には実在するファイルの名前がフルパスで設定されていなければなりません。

ファイル一覧を取得

  1. Clipboard からファイル一覧を取得して印字する ClipFileGet.cs の全ソースコードです。
    /**************************************************/
    /*★ クリップボードのファイルを取得     前田 稔 ★*/
    /**************************************************/
    using System;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Windows.Forms;
    
    class ConsoleMode
    {
        [STAThread]
        public static int Main()
        {
            if (Clipboard.ContainsFileDropList())
            {
                //データを取得する(取得できなかった時はnull)
                System.Collections.Specialized.StringCollection files = Clipboard.GetFileDropList();
                //取得したファイル名を列挙する
                foreach (string fileName in files)
                {   Console.WriteLine(fileName);  }
            }
            return 0;
        }
    }
    
  2. if (Clipboard.ContainsFileDropList()) でクリップボードにファイルリストが格納されているか調べます。
    Clipboard.GetFileDropList() でクリップボードのファイルリストを取得して印字します。
    実際にファイルをコピーする方法は Folder Copy などを参照して下さい。
  3. エクスプローラーから幾つかのファイルを選択してコピーして下さい。
    その状態でこのプログラムを実行して、選択したファイルリストが印字されることを確認して下さい。
    このプログラムを実行しても実際にファイルがコピーされる訳ではありません。

超初心者のプログラム入門(C# Frame Work)