0

フォームがあり、そこにファイルをドロップできるようにしたいと考えています。次のコードがあります。

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

ディレクトリをドロップするときではなく、ファイルをドロップするときにのみカーソルを変更したい。上記のコードは、ディレクトリに対しても変更します。私は何を間違っていますか?ファイルのデータ形式はありますか、または e.Data で取得したオブジェクトの拡張子を確認するだけですか?

4

1 に答える 1

0

File.Exists?を使用してデータを確認する必要があります。ファイルの場合はtrue、そうでない場合はfalseを返すと思います。

MSDNの例を次に示します。

        if(File.Exists(path)) 
        {
            // This path is a file
            ProcessFile(path); 
        }               
        else if(Directory.Exists(path)) 
        {
            // This path is a directory
            ProcessDirectory(path);
        }
        else 
        {
            Console.WriteLine("{0} is not a valid file or directory.", path);
        }        
于 2012-07-04T18:56:15.263 に答える