您的位置:首页 > 其它

遍历文件和文件夹,并用滚动条显示进度和写入错误日志

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;

}

}

}

}

这个方法主要是遍历所选文件夹下所有的文件和文件夹,最好使用线程启动,不然文件多的话可能出现假死的状态。

希望对大家有所帮助,我是新手,但我还是会把我每天做的东西写上来的。希望能够慢慢的提高自己的水平。现在工作可不好找。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐