C#拖拽文件显示文件路径

在C#中我想使文件拖拽到textbox上显示文件的路径如我拖拽E:\Pictures\abc.jpg到textbox上但是我只能显示他的完整路径E:\Pictures\a... 在C#中我想使文件拖拽到textbox上显示文件的路径
如我拖拽E:\Pictures\abc.jpg 到textbox上
但是我只能显示他的完整路径E:\Pictures\abc.jpg
怎么做才能只显示它所处的文件夹E:\Pictures
解决会追加悬赏
代码如下:
private void textBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Link;
else e.Effect = DragDropEffects.None;
}
private void textBox1_DragDrop(object sender, DragEventArgs e)
{
textBox1.Text = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
}
展开
 我来答
llyn23
2014-01-28 · TA获得超过5142个赞
知道大有可为答主
回答量:1831
采纳率:50%
帮助的人:1849万
展开全部
string[] files =e.Data.GetData(DataFormats.FileDrop) as string[];
if(System.IO.Directory.Exists(files[0]))
{
//如果选择是文件夹而不是文件则跳过
MessageBox.Show("拖拽了一个文件夹");
return;
}
//显示所属的文件夹
textBox1.Text=System.IO.Path.GetDirectoryName(files[0]);
cactis0906
推荐于2016-03-21 · TA获得超过138个赞
知道小有建树答主
回答量:154
采纳率:100%
帮助的人:91万
展开全部
private void textBox1_DragDrop(object sender, DragEventArgs e)
{
    string fullPath= ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
    string path = fullPath.Substring(0, fullPath.LastIndexOf("\\"));
    textBox1.Text = path;
}

截取下就好了

追问
但是这样的话我拖拽文件夹上去地址也会被截断啊,有没有方法只是在拖拽文件上去的时候截断?
追答
private void textBox1_DragDrop(object sender, DragEventArgs e)
{
    string fullPath= ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();

    if(File.Exists(fullPath)) //如果是文件的话,则截取
    {
        string path = fullPath.Substring(0, fullPath.LastIndexOf("\\"));
        textBox1.Text = path;
    }
    else
    {
        textBox1.Text = fullPath;
    }
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万界书屋
2014-01-28 · TA获得超过245个赞
知道小有建树答主
回答量:663
采纳率:50%
帮助的人:171万
展开全部
将 textBox1.Text = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
改为
string filePath= ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
textBox1.Text=filePath.SubString(0,filePah.LastIndexof('\\'));
追问
但是这样的话我拖拽文件夹上去地址也会被截断啊,有没有方法只是在拖拽文件上去的时候截断?
追答
可以呀!
string filePath= ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
try
{
if( File.Exists(filePath))
{
}
textBox1.Text=filePath.SubString(0,filePah.LastIndexof('\\'));
}
catch
{
textBox1.Text=filePath;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
N多的肉
2014-01-28 · TA获得超过3541个赞
知道小有建树答主
回答量:2260
采纳率:34%
帮助的人:620万
展开全部
判断一下,如果字符串中包含 .jpg .txt 这样的格式,就截取,不包含就不截取。
windows下的主要文件类型就那几种。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式