Forse forse ho capito, io ho usato sempre questo codice per trascrivere il testo contenuto in un file .txt, ma come puoi provare se leggi il contenuto della matrice file, ovvero il files[0] hai il percorso completo del file.
codice:
string[] droppablePaths;
public void richTextBox1_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
InsertText(droppablePaths);
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void richTextBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
e.Effect = DragDropEffects.None;
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
droppablePaths = (string[])e.Data.GetData(DataFormats.FileDrop);
if (DropEnable(droppablePaths))
{
e.Effect = DragDropEffects.Copy;
}
}
}
private void InsertText(string[] files)
{
using (StreamReader reader = new StreamReader(files[0]))
{
bool atLeastOneLine = false;
while (reader.EndOfStream == false)
{
if (atLeastOneLine)
{
richTextBox1.SelectedText = Environment.NewLine;
}
richTextBox1.SelectedText = reader.ReadLine();
atLeastOneLine = true;
}
}
}
private bool DropEnable(string[] files)
{
string extension = Path.GetExtension(files[0]);
return string.IsNullOrEmpty(extension) ?
false : extension.Equals(".txt", StringComparison.InvariantCultureIgnoreCase);
}
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.AllowDrop = true;
richTextBox1.DragDrop += new DragEventHandler(richTextBox1_DragDrop);
richTextBox1.DragEnter += new DragEventHandler(richTextBox1_DragEnter);
}