PDA

View Full Version : سوال: کپی کردن یک فایل exe که مسیرش مشخص نیست به یک مسیر مثل درایو c



bahar1370
جمعه 20 اسفند 1389, 20:22 عصر
می خوام با کلیک روی دکمه یک فایل exe از خود برنامه داخل درایو c کپی کنه...........

unknown.unforgiven
جمعه 20 اسفند 1389, 20:31 عصر
سلام
File.Copy(Application.ExecutablePath, "c:\\" + Path.GetFileName(Application.ExecutablePath));

bahar1370
جمعه 20 اسفند 1389, 21:00 عصر
ممنون همون چیزی بود که من می خواستم...............

bahar1370
جمعه 20 اسفند 1389, 21:10 عصر
The file 'c:\WindowsFormsApplication3.EXE' already exists.


این پیام خطارو میده البته می سازه فایل exe ولی بعد برنامه خطا می گیره

unknown.unforgiven
جمعه 20 اسفند 1389, 22:58 عصر
این خطا به خاطر اینه که اون فایل تو درایو C هستش (احتمالاً از سری قبل که برنامه رو اجرا کردی مونده). اگه میخوای برنامه خطا نده یکی از این کارا رو بکن:
1. اول چک کن ببین فایل هستش یا نه، اگه بود عمل کپی انجام نشه، اگرم که نبود فایل رو کپی بکنه
if (!File.Exists("c:\\" + Path.GetFileName(Application.ExecutablePath)))
File.Copy(Application.ExecutablePath, "c:\\" + Path.GetFileName(Application.ExecutablePath));
2. اول چک کن ببین فایل هستش یا نه، اگه بود فایل رو پاک کن و بعد دوباره کپی کن، اگرم که نبود فایل رو کپی بکن
if (File.Exists("c:\\" + Path.GetFileName(Application.ExecutablePath)))
File.Delete("c:\\" + Path.GetFileName(Application.ExecutablePath));
File.Copy(Application.ExecutablePath, "c:\\" + Path.GetFileName(Application.ExecutablePath));
فرق این دو تا روش فقط تو زمانیه که تو فایل اصلیت که داره عمل کپی براش انجام میشه تغییر ایجاد بشه. اولی کاری به کار تغییرات نداره و اولین باری که برنامت اجرا بشه یه کپی ازش میزنه. اما تو روش دوم هر سری که برنامت اجرا میشه نسخه قبلی رو پاک میکنه و نسخه جدید رو به جاش کپی میکنه

nima.mehdi
شنبه 21 اسفند 1389, 00:18 صبح
می تونید در دستور file.copy پارامتر سوم را true کنبد که در صورت وجود روی همان کپی شود