详情如何使用C# listview控件显示文件夹内的文件名及路径???急求

frank820 2011-08-24 09:46:05
设计内容为,好比点击一个按钮便能查找本地的一个文件夹然后选中,在Listview中按照columsheads这样的格式分布开。columsheads里分布为,编号,文件名,路径和文件的版本。文件名是以图片形式和文件名表现的,麻烦给代码帮助下,本人新手求指导。另想问如何让序号自动编号啊???求详细。。。分数都不是问题。
...全文
778 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
frank820 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sunny906 的回复:]


C# code


String[] files = Directory.GetFiles(@"E:\Software");


改为

C# code


FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDia……
[/Quote]
在button2_Click事件中添加个计数,就可以了。我自己已经弄好了,谢谢你了!
int count = 0;
count++;
if (count == 1)
{
listView1.Columns.Clear();
}
萧炎 2011-08-24
  • 打赏
  • 举报
回复
希望不是很迟
LZ 我有个DEMO也许能帮到你 Q:453367672
frank820 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sunny906 的回复:]


C# code


String[] files = Directory.GetFiles(@"E:\Software");


改为

C# code


FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDia……
[/Quote]
现在有个问题就是。button2_click事件再次触发的时候,columns就会继续添加,后面FDB就失效了。我试了几次,不知道要怎么修改。用个IF语句么?抱歉啊。之前对folderBrowser这些控件都没用过。麻烦你了!
sunny906 2011-08-24
  • 打赏
  • 举报
回复


String[] files = Directory.GetFiles(@"E:\Software");

改为

FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDialog() == DialogResult.Cancel)
{
return;
}
String[] files = Directory.GetFiles(fbd.SelectedPath);
frank820 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lmaohuanl 的回复:]
C# code

ColumnHeader ch_FileName = new ColumnHeader();
ch_FileName.Text = "File Name";
ch_FileName.Width = 110;
ColumnHeader ch_FileLocation = new ColumnHeader();
ch_FileLocation.Text = "File P……
[/Quote]
哦 之前就是你的帖子。。抱歉,但这个打开不了本地目录,而且我不懂这个数组是什么意思?
frank820 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sunny906 的回复:]
C# code


private void button2_Click(object sender, EventArgs e)
{
listView1.Clear(); //清除所有项和列
listView1.View = View.Details;
listView1.Colu……
[/Quote]
麻烦问下,可以实现点击按钮例如openfile这种打开本地文件夹选择目录这个形式么?我只是知道这种方法,但不知道怎么实现。如果可以,可以加下注释么 =。=谢谢!!!
frank820 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lmaohuanl 的回复:]
C# code

ColumnHeader ch_FileName = new ColumnHeader();
ch_FileName.Text = "File Name";
ch_FileName.Width = 110;
ColumnHeader ch_FileLocation = new ColumnHeader();
ch_FileLocation.Text = "File P……
[/Quote]
这个我试过了,listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[]{ch_FileName,ch_FileName});
这段在ch_FileName,上会报错,提示不能多处添加或插入。而且这个是别人的帖子。。。
sunny906 2011-08-24
  • 打赏
  • 举报
回复

private void button2_Click(object sender, EventArgs e)
{
listView1.Clear(); //清除所有项和列
listView1.View = View.Details;
listView1.Columns.Add("编号");
listView1.Columns.Add("文件名");
listView1.Columns.Add("路径");
listView1.Columns.Add("版本");
listView1.Columns[0].Width = 60;
listView1.Columns[1].Width = 200;
listView1.Columns[2].Width = 300;
listView1.Columns[3].Width = 100;

String[] files = Directory.GetFiles(@"E:\Software");
ListViewItem item = null;
FileVersionInfo info = null;
int id = 1;
foreach (String file in files)
{
item = new ListViewItem(id.ToString());
item.SubItems.Add(Path.GetFileName(file));
item.SubItems.Add(file);
info = FileVersionInfo.GetVersionInfo(file);
item.SubItems.Add(info.FileVersion);
listView1.Items.Add(item);
id++;
}
}
LMAOhuaNL 2011-08-24
  • 打赏
  • 举报
回复
ColumnHeader ch_FileName = new ColumnHeader();
ch_FileName.Text = "File Name";
ch_FileName.Width = 110;
ColumnHeader ch_FileLocation = new ColumnHeader();
ch_FileLocation.Text = "File Path";
ch_FileLocation.Width = 110;
listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[]{ch_FileName,ch_FileName});
OpenFileDialog openFile = new OpenFileDialog();
if(openFile.ShowDialog() == DialogResult.OK){
foreach(string file in openFile.FileNames) {
string fileName = System.IO.Path.GetFileNameWithoutExtension(file);
ListViewItem item = new ListViewItem(new string[]{ fileName, file}); listView1.Items.Add(item); }}
frank820 2011-08-24
  • 打赏
  • 举报
回复
可以把绝对路径改成可以选取本地文件夹里的文件内容然后再在listview上显示,而且这个代码,如果一直点击button2那就会一直刷出好多columns。如何解决呢?
sunny906 2011-08-24
  • 打赏
  • 举报
回复

private void button2_Click(object sender, EventArgs e)
{
listView1.View = View.Details;
listView1.Columns.Add("编号");
listView1.Columns.Add("文件名");
listView1.Columns.Add("路径");
listView1.Columns.Add("版本");
listView1.Columns[0].Width = 60;
listView1.Columns[1].Width = 200;
listView1.Columns[2].Width = 300;
listView1.Columns[3].Width = 100;

String[] files = Directory.GetFiles("D:\\dir");
ListViewItem item = null;
FileVersionInfo info = null;
int id = 1;
foreach (String file in files)
{
item = new ListViewItem(id.ToString());
item.SubItems.Add(Path.GetFileName(file));
item.SubItems.Add(file);
info = FileVersionInfo.GetVersionInfo(file);
item.SubItems.Add(info.FileVersion);
listView1.Items.Add(item);
id++;
}
}
frank820 2011-08-24
  • 打赏
  • 举报
回复
xqc-112@163.com可以把实例发到邮箱里的。大神们来帮助下啊。
DigitalMonk 2011-08-24
  • 打赏
  • 举报
回复
顶。。。。。。
frank820 2011-08-24
  • 打赏
  • 举报
回复
没有回复自己顶一下吧。等强力解说与代码。。。大神们急求啊!
sunny906 2011-08-24
  • 打赏
  • 举报
回复

listView1.Clear(); //清除所有项和列
sunny906 2011-08-24
  • 打赏
  • 举报
回复
清除的方法在这里:
[Quote=引用 7 楼 sunny906 的回复:]
C# code


private void button2_Click(object sender, EventArgs e)
{
listView1.Clear(); //清除所有项和列
listView1.View = View.Details;
listView1.Colu……
[/Quote]

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧