获取拖入 Windows 窗体窗体的文件的路径
Posted
技术标签:
【中文标题】获取拖入 Windows 窗体窗体的文件的路径【英文标题】:Get the path of a file dragged into a Windows Forms form 【发布时间】:2011-05-20 20:23:57 【问题描述】:我正在开发一个应用程序,它要求用户将文件从Windows Explorer 拖到应用程序窗口(@987654322@ 表单)。有没有办法在C#中读取文件的文件名、路径和其他属性?
【问题讨论】:
在Drag and Drop Text Files from Windows Explorer to your Windows Form Application中有一个完整的例子。 【参考方案1】:您可以捕获 DragDrop 事件并从那里获取文件。比如:
void Form_DragDrop(object sender, DragEventArgs e)
string[] fileList = (string[])e.Data.GetData(DataFormats.FileDrop, false);
//more processing
【讨论】:
我也会为 InvalidCastException 抛出一个 try/catch,以防用户尝试拖入其他东西! 我不允许进行单字符编辑,所以我留下这个评论:FileList 应该是驼峰式:fileList 在表单上保存文件不允许我删除文件。为什么?它给了我不允许的标志..【参考方案2】:你应该使用两个事件 1) 拖放 2) 拖动输入
还将面板/表单的“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);
【讨论】:
以上是关于获取拖入 Windows 窗体窗体的文件的路径的主要内容,如果未能解决你的问题,请参考以下文章