Я должен удалить файлы и подпапки из определенной папки, в то время как при удалении файлов индикатор выполнения должен отображать индикатор выполнения, который находится в другой форме.
Я взял фоновый работник для этого.Значение индикатора выполнения изменяется как исключение, но на экране индикатора выполнения не отображается процент обновления.
Я использую visual studio 2005
.Потому что это старый проект.
private void EmptyFolder(DirectoryInfo directoryInfo, long totalSize, frmProgress frmProgressLbl, ref long deletedSize)
{
short percent;
//long deletedSize=0;
try
{
foreach (FileInfo file in directoryInfo.GetFiles())
{
try
{
deletedSize += file.Length;
file.Delete();
percent = Convert.ToInt16((deletedSize * 100) / totalSize);
frmProgressLbl.Percent = percent;
}
catch (Exception ex)
{
}
}
foreach (DirectoryInfo subfolder in directoryInfo.GetDirectories())
{
EmptyFolder(subfolder, totalSize,frmProgressLbl,ref deletedSize);
}
}
catch (Exception ex)
{
}
}
Ниже приведен код формы, где находится индикатор выполнения.
public partial class frmProgress : Form
{
private short percent;
public short Percent { set { percent = value; } }
private BackgroundWorker bgWorker;
public frmProgress()
{
InitializeComponent();
this.bgWorker = new BackgroundWorker();
this.bgWorker.WorkerReportsProgress = true;
this.bgWorker.WorkerSupportsCancellation = true;
this.bgWorker.DoWork += new DoWorkEventHandler(bgWorker_DoWork);
this.bgWorker.RunWorkerAsync();
}
private void frmProgress_Load(object sender, EventArgs e)
{
this.label1.Text = "Deleting Files...";
this.bgWorker.RunWorkerAsync();
}
void bgWorker_DoWork(object sender, DoWorkEventArgs e)
{
this.progressBar1.Value = percent;
}
}
Ваша помощь может быть оценена.