Tengo una lista de archivos con sus nombres en un cuadro de lista y sus contenidos almacenados en una tabla SQL y quiero que el usuario de mi aplicación pueda seleccionar uno o más nombres de archivo en el cuadro de lista y arrastrarlos al escritorio, produciendo los archivos reales en el escritorio. No puedo encontrar ninguna documentación sobre cómo hacer esto. ¿Alguien puede explicar o señalar una explicación?¿Implementar el arrastre de archivos al escritorio desde una aplicación de .NET winforms?
Agregado después: He podido hacer que esto funcione manejando el evento DragLeave. En él creo un archivo en un directorio temporal con el nombre seleccionado y los contenidos extraídos de SQL Server. Entonces puse la ruta de acceso al archivo al objeto:
var files = new string[1];
files[0] = "full path to temporary file";
var dob = new DataObject();
dob.SetData(DataFormats.FileDrop, files);
DoDragDrop(dob, DragDropEffects.Copy);
pero esto parece muy ineficiente y torpe, y todavía no he encontrado una buena manera de deshacerse de los archivos temporales acumulados.
Entiendo esto, pero lo que no entiendo es dónde se crea foo.txt y se completa con su contenido de la tabla SQL. – mlo
¿Es posible agregar "c: /foo.txt", pero cuando termine de arrastrar soltar el archivo con un nuevo nombre de archivo como "new foo.txt"? – Nooneelse