遍历文件和文件夹,并用滚动条显示进度和写入错误日志
2008-08-16 02:36
267 查看
Code
private void getSome(DirectoryInfo dir)
{
progressBar1.Minimum = 1; //设置滚动条的最小值
FileSystemInfo[] file = dir.GetFileSystemInfos(); //获取文件夹内所有文件和文件夹
progressBar1.Maximum = file.Length;
foreach (FileSystemInfo fi in file)
{
if (fi is DirectoryInfo)
{
string directory = dir.FullName + @"\" + fi.Name;
try
{
DirectoryInfo info = new DirectoryInfo(directory);
info.Delete(true);
getSome(info);
}
catch
{
string path = Application.StartupPath + @"\" + "error.log";
StreamWriter w = new StreamWriter(path, true, Encoding.UTF8);
FileInfo f = new FileInfo(path);
if (f.Exists)
{
w.WriteLine("文件:" + directory + " 不能被删除");
w.Close();
}
else
{
File.Create(path);
}
continue;
}
}
else
{
string filename = dir.FullName + @"\" + fi.Name;
try
{
label1.Text = filename;
//File.Delete(filename);
progressBar1.PerformStep();
Thread.Sleep(100);
}
catch
{
string path = Application.StartupPath + @"\" + "error.log";
StreamWriter w = new StreamWriter(path, true, Encoding.UTF8);
FileInfo f = new FileInfo(path);
if (f.Exists)
{
w.WriteLine("文件:" + filename + " 不能被删除");
w.Close();
}
else
{
File.Create(path);
}
continue;
}
}
}
}
这个方法主要是遍历所选文件夹下所有的文件和文件夹,最好使用线程启动,不然文件多的话可能出现假死的状态。
希望对大家有所帮助,我是新手,但我还是会把我每天做的东西写上来的。希望能够慢慢的提高自己的水平。现在工作可不好找。
private void getSome(DirectoryInfo dir)
{
progressBar1.Minimum = 1; //设置滚动条的最小值
FileSystemInfo[] file = dir.GetFileSystemInfos(); //获取文件夹内所有文件和文件夹
progressBar1.Maximum = file.Length;
foreach (FileSystemInfo fi in file)
{
if (fi is DirectoryInfo)
{
string directory = dir.FullName + @"\" + fi.Name;
try
{
DirectoryInfo info = new DirectoryInfo(directory);
info.Delete(true);
getSome(info);
}
catch
{
string path = Application.StartupPath + @"\" + "error.log";
StreamWriter w = new StreamWriter(path, true, Encoding.UTF8);
FileInfo f = new FileInfo(path);
if (f.Exists)
{
w.WriteLine("文件:" + directory + " 不能被删除");
w.Close();
}
else
{
File.Create(path);
}
continue;
}
}
else
{
string filename = dir.FullName + @"\" + fi.Name;
try
{
label1.Text = filename;
//File.Delete(filename);
progressBar1.PerformStep();
Thread.Sleep(100);
}
catch
{
string path = Application.StartupPath + @"\" + "error.log";
StreamWriter w = new StreamWriter(path, true, Encoding.UTF8);
FileInfo f = new FileInfo(path);
if (f.Exists)
{
w.WriteLine("文件:" + filename + " 不能被删除");
w.Close();
}
else
{
File.Create(path);
}
continue;
}
}
}
}
这个方法主要是遍历所选文件夹下所有的文件和文件夹,最好使用线程启动,不然文件多的话可能出现假死的状态。
希望对大家有所帮助,我是新手,但我还是会把我每天做的东西写上来的。希望能够慢慢的提高自己的水平。现在工作可不好找。
相关文章推荐
- asp.net中当服务器出错时显示指定的错误页面,同时把错误信息写入系统日志文件
- asp.net中当服务器出错时显示指定的错误页面,同时把错误信息写入系统日志文件的探讨
- 显示指定的错误页面,同时把错误信息写入系统日志文件
- Python遍历文件夹下所有文件中数据并写入Excel
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)(二)
- 解决apache 文件夹下 logs 错误日志文件过大的问题
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- 遍历显示文件夹下所有目录、所有文件的函数,没有分页
- 文件的打开、复制、写入、创建、删除、获取设置 文件属性 查找文件 遍历文件夹等14.4.26
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)(一)
- Java学习随笔3:遍历文件夹及文件的读取和写入
- error_log()将错误信息写入日志文件
- 利用POI对MS Excel进行读写(可以设置写入文件的样式),利用tm-extractor对Word进行读取操作并将信息用(log4j)日志信息显示出
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- C#遍历文件夹后上传文件夹中所有文件错误案例分析
- 网狐荣耀版vs生成解决方案时出现“出现未能写入日志,请求的操作无法在使用用户映射区域打开的文件上执行“错误
- 文件,文件夹,文件流,日志文件写入记事本
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- C# 文件操作,遍历文件夹、读文件、写入、修改、复制