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();
} 展开
如我拖拽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();
} 展开
4个回答
展开全部
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]);
展开全部
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;
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将 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();
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
判断一下,如果字符串中包含 .jpg .txt 这样的格式,就截取,不包含就不截取。
windows下的主要文件类型就那几种。
windows下的主要文件类型就那几种。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询