PDA

View Full Version : سوال: کپی کردن کل محتویات پوشه x به مسیر y که بعضی وقتها جواب میده و بعضی وقتها نمیده



kamran_14
سه شنبه 26 اردیبهشت 1396, 12:04 عصر
سلام
خسته نباشید
من کل محتویات پوشه اعم از زیر پوشه و فایل کپی میکنم به یک مسیر مشخص.
اما بعضی وقتها زیر پوشه ها هم کپی میشن اما بعضی وقتها نمیشن
نمیدونم چرا
میشه کمکم کنید؟ خواهش میکنم
مثلا من کل محتویات پوشه x به مسیر y کپی میکنم
بعضی وقتها همشون کپی میشن بعضی وقتها نمیشن. دلیلشو نمیدونم
من از این دستورات استفاده کردم:


source_dir = @"f:\";
destination_dir =@"e:\";
//Now Create all of the directories
foreach (string dirPath in System.IO.Directory.GetDirectories(source_dir, "*",
System.IO.SearchOption.AllDirectories))
System.IO.Directory.CreateDirectory(dirPath.Replac e(source_dir, destination_dir));


//Copy all the files & Replaces any files with the same name
foreach (string newPath in System.IO.Directory.GetFiles(source_dir, "*.*",
System.IO.SearchOption.AllDirectories))
System.IO.File.Copy(newPath, newPath.Replace(source_dir, destination_dir), true);

kamran_14
سه شنبه 26 اردیبهشت 1396, 12:58 عصر
دلیلشو فهمیدم که چرا بعضی وقتها تمامشون کپی نمیشه.
وقتی این حالت پیش میاد که من یک فایلی رو از اون مسیر باز کردم برا همین کامل کپی نمیشه
اما نمیدونم چطوری پیشگیری کنم.
خواهش میکنم کمکم کنید
ممنون

kamran_14
سه شنبه 26 اردیبهشت 1396, 13:20 عصر
با گذاشتن try حل شد

shahryari
پنج شنبه 28 اردیبهشت 1396, 12:56 عصر
با گذاشتن try حل شد

با try مشکل حل نمیشه
باید برسی کنی ببینی اون فایل IsReady هست یا نع

kamran_14
شنبه 20 خرداد 1396, 18:38 عصر
با try مشکل حل نمیشه
باید برسی کنی ببینی اون فایل IsReady هست یا نع

چطوری بفههم یه فایلی isready هست؟

danialafshari
یک شنبه 21 خرداد 1396, 04:08 صبح
چطوری بفههم یه فایلی isready هست؟
می تونید از این متد استفاده کنید:

private bool IsFileLocked(FileInfo file)
{
FileStream stream = null;

try
{
stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None);
}
catch (IOException)
{
return true;
}
finally
{
if (stream != null)
stream.Close();
}

//file is not locked
return false;
}
private void btnCheck_Click(object sender, EventArgs e)
{
FileInfo fi = new FileInfo(@"D:\testPic.jpg");
MessageBox.Show(IsFileLocked(fi).ToString());
}

موفق باشید