PDA

View Full Version : سوال: مشکل در کپی فایلها



ehsan_starlight
چهارشنبه 19 بهمن 1390, 18:35 عصر
سلام دوستان عزیزم...

من در برنامم به کمک Open Dialog یه عکس رو در پوشه ای در مسیر جاری برنامه کپی می کنم ..
مشکل اینجاست که اگر نام فایل تکراری باشه برنامه ارور میده !!!!
یه شرط گذاشتم که اگر نام فایلها برابر بود کلمه کپی رو نام اون اضافه که اما باز هم برنامه ارور میده !!!!
اینم تکه کد:

if (FilePath != FileSecPath)
File.Copy(FilePath, FileSecPath);
else if (FilePath == FileSecPath)
File.Copy(FilePath,Application.StartupPath + @"\Avatar\" + OnlyName+" Copy" + Extension);

meisam3322
چهارشنبه 19 بهمن 1390, 19:56 عصر
با سلام،

دوست عزیز ، بعد از وارد نمودن آدرس منبع و مقصد ، حالا یه گزینه دیگه هست از نوع bool که اگر true باشه ، یعنی دو تا فایل هم نام باشند ، میاد فایل جدید رو جایپزین فایل قدیمی میکنه و اگر false باشه که خوب معلومه حالا دستور کپی شما میشه :



File.Copy(FilePath,Application.StartupPath + @"\Avatar\" + OnlyName+" Copy" + Extension,True);

ehsan_starlight
پنج شنبه 20 بهمن 1390, 03:10 صبح
ممنون اما باز هم نمیشه ...

کدهارو می زارم ببینید ...

OpenFileDialog.Filter = "Image File (*.Bmp)|*.Bmp";

if (OpenFileDialog.ShowDialog() == DialogResult.OK)
{
string FilePath = OpenFileDialog.FileName.ToString();
string OnlyName = Path.GetFileNameWithoutExtension(FilePath);
string Extension = Path.GetExtension(FilePath);
string FileSecPath = Application.StartupPath + @"\Avatar\" + OnlyName + Extension;
string FileSecPathOver = Application.StartupPath + @"\Avatar\" + OnlyName +" Copy"+ Extension;
if (File.Exists(FileSecPath) == File.Exists(FilePath))
{
MessageBox.Show("There is Already file with the some name in this Location");
File.Copy(FilePath, FileSecPathOver, true);
PbAvatar.Image = Image.FromFile(FileSecPathOver);
return;
}
else
File.Copy(FilePath, FileSecPath, true);
PbAvatar.Image = Image.FromFile(FileSecPath);
}}

AliSaeedi_v
پنج شنبه 20 بهمن 1390, 11:09 صبح
سلام احسان جون این شرط رو تغییر بده بین درست میشه
File.Exists(FileSecPath) == File.Exists(FilePath)
به جاش بنویس
File.Exists(FileSecPath)

ehsan_starlight
پنج شنبه 20 بهمن 1390, 11:59 صبح
ممنون علی جان ...

از این روش صرف نظر کرده بودم و راه دیگه ای رو امتحان کردم که به نتیجه رسیدم ، باز هم ممنون

sajjadsrz
جمعه 25 فروردین 1391, 17:57 عصر
سلام

همون شرط رو بزار بین Try cashe تا اگه فایل مشابه پیدا نکرد عمل کپی انجام میشه و اگر فایل مشابه بود خاصیت boolرو true کن!
موفق باشی