web-dev-qa-db-fra.com

Obtenez le chemin d'un fichier glissé dans un formulaire Windows Forms

Je développe une application qui oblige l'utilisateur à faire glisser un fichier de Explorateur Windows dans la fenêtre de l'application ( Windows Forms form). Existe-t-il un moyen de lire le nom de fichier, le chemin d'accès et d'autres propriétés du fichier en C #?

29
matrix

Vous pouvez attraper l'événement DragDrop et récupérer les fichiers à partir de là. Quelque chose comme:

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

    //more processing
}
36
Adrian Fâciu

vous devez utiliser deux événements 1) DragDrop 2) DragEnter

Activez également la propriété "AllowDrop" du panneau/formulaire sur 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