Many of them have been written, as if they were, but they are not checked :)
Write down and save a backup for yourself.
Click private void button2_click (Object sender, eventargs E)
{
Dialogresult result = folderbrowserdialog1.showdialog ();
If (result = dialogresult. OK)
{
Textbox2.text = folderbrowserdialog1.selectedpath;
}
Thread thread = new thread (New threadstart (getfoldersizethread ));
Thread. Start ();
}
Long-time Data calculation function: Private ulong getfoldersize (string strfoldername)
{
Ulong result = 0;
Directoryinfo info = new directoryinfo (strfoldername );
Fileinfo [] arrfileinfo = info. getfiles ();
Foreach (fileinfo in arrfileinfo)
{
Result + = (ulong) fileinfo. length;
}
Directoryinfo [] arrdirinfo = info. getdirectories ();
Foreach (directoryinfo dirinfo in arrdirinfo)
{
Result + = getfoldersize (dirinfo. fullname );
}
Return result;
}
Thread method: Private void getfoldersizethread ()
{
Ulong longfoldersize = getfoldersize (textbox1.text );
Setlabelhandler handler = delegate (ulong size)
{
Label1.text = string. Format ("total size: {0: n} kb", size/1024 );
};
If (label1.invokerequired)
{
Invoke (handler, new object [] {longfoldersize });
}
}
Delegate: Public Delegate void setlabelhandler (ulong size );