forodo
جمعه 04 بهمن 1392, 01:40 صبح
سلام
من با کد زیر عملیات کپی فولدر و تمام زیرشاخه های داخلش ( فولدر و فایل ) رو انجام می دم ولی وقتی که شروع به کپی می کنه وحشتناک سرعت سیستم میاد پایین در حدی که اسکرول صفحات وب با تأخیر زیادی حرکت می کنه و مای کامپیوتر رو که می خوام باز کنم خیلی طول می کشه و ...
لطفاً بگید چیکار کنم که هنگام کپی تأثیری روی سرعت کامپیوتر بوجود نیاره.
با تشکر
private void CopyDirectory(DirectoryInfo source, DirectoryInfo destination)
{
if (!destination.Exists)
{
destination.Create();
}
// Copy all files.
FileInfo[] files = source.GetFiles();
foreach (FileInfo file in files)
{
if (file.ToString() == "FolderMarker.ico")
{
File.Delete(destination.FullName + "\\" + file.Name);
}
if (file.ToString() != "Desktop.ini")
{
if (!File.Exists(destination.FullName + "\\" + file.Name))
{
file.CopyTo(Path.Combine(destination.FullName, file.Name));
}
}
}
// Process subdirectories.
DirectoryInfo[] dirs = source.GetDirectories();
foreach (DirectoryInfo dir in dirs)
{
// Get destination directory.
string destinationDir = Path.Combine(destination.FullName, dir.Name);
if (File.Exists(source + @"\FolderMarker.ico") && tek != source.ToString())
{
FolderIcon myFolderIcon = new FolderIcon(destination.ToString());
myFolderIcon.CreateFolderIcon(source + @"\FolderMarker.ico");
myFolderIcon = null;
}
// Call CopyDirectory() recursively.
string be = source.ToString() + "\\" + dir.ToString();
DirectoryInfo dibe = new DirectoryInfo(be);
CopyDirectory(dibe, new DirectoryInfo(destinationDir));
}
}
من با کد زیر عملیات کپی فولدر و تمام زیرشاخه های داخلش ( فولدر و فایل ) رو انجام می دم ولی وقتی که شروع به کپی می کنه وحشتناک سرعت سیستم میاد پایین در حدی که اسکرول صفحات وب با تأخیر زیادی حرکت می کنه و مای کامپیوتر رو که می خوام باز کنم خیلی طول می کشه و ...
لطفاً بگید چیکار کنم که هنگام کپی تأثیری روی سرعت کامپیوتر بوجود نیاره.
با تشکر
private void CopyDirectory(DirectoryInfo source, DirectoryInfo destination)
{
if (!destination.Exists)
{
destination.Create();
}
// Copy all files.
FileInfo[] files = source.GetFiles();
foreach (FileInfo file in files)
{
if (file.ToString() == "FolderMarker.ico")
{
File.Delete(destination.FullName + "\\" + file.Name);
}
if (file.ToString() != "Desktop.ini")
{
if (!File.Exists(destination.FullName + "\\" + file.Name))
{
file.CopyTo(Path.Combine(destination.FullName, file.Name));
}
}
}
// Process subdirectories.
DirectoryInfo[] dirs = source.GetDirectories();
foreach (DirectoryInfo dir in dirs)
{
// Get destination directory.
string destinationDir = Path.Combine(destination.FullName, dir.Name);
if (File.Exists(source + @"\FolderMarker.ico") && tek != source.ToString())
{
FolderIcon myFolderIcon = new FolderIcon(destination.ToString());
myFolderIcon.CreateFolderIcon(source + @"\FolderMarker.ico");
myFolderIcon = null;
}
// Call CopyDirectory() recursively.
string be = source.ToString() + "\\" + dir.ToString();
DirectoryInfo dibe = new DirectoryInfo(be);
CopyDirectory(dibe, new DirectoryInfo(destinationDir));
}
}