web-dev-qa-db-ja.com

Windowsフォームフォームにドラッグされたファイルのパスを取得する

ユーザーがファイルを Windowsエクスプローラー からアプリケーションウィンドウ( Windowsフォーム フォーム)にドラッグする必要があるアプリケーションを開発しています。 C#でファイルのファイル名、パス、その他のプロパティを読み取る方法はありますか?

29
matrix

DragDropイベントをキャッチして、そこからファイルを取得できます。何かのようなもの:

void Form_DragDrop(object sender, DragEventArgs e)
{
    string[] fileList = (string[])e.Data.GetData(DataFormats.FileDrop, false);

    //more processing
}
36
Adrian Fâciu

2つのイベントを使用する必要があります1)DragDrop 2)DragEnter

また、パネル/フォームの「AllowDrop」プロパティをtrueに有効化します。

 private void form_DragEnter(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
        {
            e.Effect = DragDropEffects.Copy;
        }
        else
        {
            e.Effect = DragDropEffects.None;
        }
    }

    private void form_DragDrop(object sender, DragEventArgs e)
    {
        string[] filePaths= (string[])e.Data.GetData(DataFormats.FileDrop, false);
    }
0
Sayed idrees