想实现
选定指定文件夹
点击按钮
在richtextbox不断地刷新显示该文件夹每个一个文件路径的字符我猜想要用到多线程,但是我没办法实现显示字符的动态变化效果
本人菜鸟,请高手赐点代码,不胜感激。
选定指定文件夹
点击按钮
在richtextbox不断地刷新显示该文件夹每个一个文件路径的字符我猜想要用到多线程,但是我没办法实现显示字符的动态变化效果
本人菜鸟,请高手赐点代码,不胜感激。
解决方案 »
- C# 关于Socket 多线程的Server端 Client端的收发数据
- 如何使用存储过程 执行添加返回编号
- 单元测试问题
- 帮忙看看 函数问题
- 有谁知道 HttpClient是做什么的么?用它的时候要引用哪个头文件???
- 在窗体上点击检查框时激发CheckedChanged事件,但是在窗体的load事件中执行代码“checkBox1.Checked = true;”也会自动激发检查框的CheckedChanged事件,这是我所不希望的,如何避免自动激发检查框的Checked
- 最大连接池的问题,如何解决???
- C#新手在新手
- 怎么读服务器的事件查看器到本机上
- 在2005中dataGridView用table1BindingSource和bindingNavigator1连接好 但是增加和修改数据都不存进表里,怎么解决啊?
- 如何做win mobile的开发呢
- xheditor开源编辑器ajax上传功能的完善(精通aspx会看php进)
先判断是否为目录,然后返回路径名,然后显示在Label上
GetFiles方法: 返回指定目录中的文件的名称。
GetFileSystemEntries方法: 返回指定目录中所有文件和子目录的名称。
to wiki14我做不出效果来,我知道怎么显示
{
public Form1()
{
InitializeComponent();
label2.Text = "";
} private void button1_Click(object sender, EventArgs e)
{
new Thread(new ThreadStart(this.Scan)).Start();
}
private void Scan()
{
ScanFile("E:\\");
}
private void ScanFile(string Dir)
{
string Filepath = "";
try
{
String[] CDirs = Directory.GetDirectories(Dir);
if (CDirs.Length > 0)
{
for (int i = 0; i < CDirs.Length; i++)
{
ScanFile(CDirs[i]);
}
}
String[] CFiles = Directory.GetFiles(Dir);
if (CFiles.Length > 0)
{
for (int j = 0; j < CFiles.Length; j++)
{
Filepath = Dir + @"\" + CFiles[j];
Invoke(new ShwMessage(ShowMessage), new object[] { Filepath });
}
}
}
catch
{
}
}
private void ShowMessage(string _Text)
{
label2.Text = _Text;
}
private delegate void ShwMessage(string _Text);
}
this.Invoke (new Action ()=> richtextbox.AppendText (文件路径+"\n"));应该就行了.不过遍历的速度会变得慢下来.
ChrisAK
不管是一行一行逐步显示,还是直接在原来上面的的替换,都可以
要是一个看是在动,在扫描的效果
多线程我不是很精通,我试了试没成功,百度google都找过了,没有答案,所以来求助了望各位大大,不吝赐教
...using System;
using System.IO;
using System.Windows.Forms;
using System.Threading;class showfiles:Form
{
RichTextBox rt_file = new RichTextBox();
showfiles()
{
Controls.Add(rt_file);
rt_file.Dock = DockStyle.Fill;
}
void getfiles(string dir)
{
string[] files;
string[] subdirs;
try{
files = Directory.GetFiles(dir);
subdirs = Directory.GetDirectories(dir);
}catch(Exception){
return;
}
foreach (var file in files)
Invoke(new Action(() => rt_file.Text = file));
foreach (var subdir in subdirs)
getfiles(subdir); }
protected override void OnShown(EventArgs e)
{
new Thread(new ThreadStart(() => getfiles("c:\\"))).Start();
}
static void Main()
{
new showfiles().ShowDialog();
}
}存成cs文件后直接在vs的命令提示符下用csc编译.
在循环中加入
System.Windows.Forms.Application.DoEvents();
就可以了。扫描文件出现文件的文件路径,我做的对象生成器也是用这个显示文件生成的地址
在循环中加入
System.Windows.Forms.Application.DoEvents();
就可以了。扫描文件出现文件的文件路径,我做的对象生成器也是用这个显示文件生成的地址