PDA

View Full Version : سوال: آپدیت برنامه از طریق اینترنت



علی فتحی
سه شنبه 17 شهریور 1394, 23:38 عصر
سلام : در یک برنامه فایلهای اصلی برای اپدیت کادر قرمز رنگ میباشد.این فایلها رو داخل یک فایل ذیپ شده اپلود میکنم.
حالا سوالم اینه ؟چگونه با کد نویسی مستقیم این فایلها را از حالت ذیپ شده خارج کرده و در مکان نصب نرم افزار جای گذاری کنم؟

علی فتحی
چهارشنبه 18 شهریور 1394, 00:46 صبح
این کد رو پیدا کردم ولی فایل رو دانلود نمیکنه

private void buttonX2_Click(object sender, EventArgs e) {
FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
folderBrowserDialog1.RootFolder = Environment.SpecialFolder.Desktop;
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
textBoxX2.Text = folderBrowserDialog1.SelectedPath;
}
string select = textBoxX1.Text.ToString();
string[] wordarry = select.Split('/');
for (int i = 0; i < Int32.Parse(wordarry.Length.ToString()); i++)
{
if (i == Int32.Parse(wordarry.Length.ToString()) - 1)
{
textBoxX2.Text += "\\" + wordarry[i].ToString();
}


}
}


private void buttonX1_Click(object sender, EventArgs e)
{
WebClient webClient = new WebClient();
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChange d);
webClient.DownloadFileAsync(new Uri(textBoxX1.Text.Trim().ToString()), textBoxX2.Text.Trim());




}


private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{


progressBarX1.Value = e.ProgressPercentage;
}
private void Completed(object sender, AsyncCompletedEventArgs e)
{
MessageBox.Show("دانلود کامل شد لطفا ذخیره کنید!");


}

ژیار رحیمی
چهارشنبه 18 شهریور 1394, 02:26 صبح
سلام وقتی داخل برنامه فایل های آپدیت گرفته شود برای جایگزین کردن چون process برنامه در حال اجراست میشه داخل همین process فایل ها رو extract کرد و همزمان که برنامه در حال اجراست جای گزین کرد ولی خودم این روش رو استفاده نمی کنم. به جاش یه فایا exe که کارش replace کردن فایل های جدید با قدیم هست نوشتم و بعد از اتمام دانلود داخل برنامه اصلی فراخوانیش میکنم که بعد از جایگذاری دوباره نرم افزارو run میکنه.
بهتره یه فایل xml جهت راحتی کار (برای مشحصات ، ورژن فایل و مسیر فایل زیپ رو هاست )کنار فایل zip اصلی قرار بدی چون اگه مسیر دریافت یا آدرس دریافت آپدیت تغییر کرد مشکلی بوجود نیاد
ابتدا فایل xml رو بخون بعد اگه ورژن جاری نرم افزار کوچکتر بود از ورژن روی هاست پیغام یا شروع به دانلود کنه.مزیت دیگه فایل replacement اینه که کاربر میتونه update آفلاین هم انجام بده یعنی از یه سیستم دیگه فایل zip رو دانلود کنه و بعد از انتقال به مسیر پروژه با اجرای فایل replacement فایل هارو جابجا کنه.
تو فایل replacement فایل zip رو unzip و جایگزین کن.میتونی از Ionic.Zip.dll استفاده کنی که هم استفاده ازش راحته هم نمونه کد تو اینترنت گیر میاد.

davidrobert
چهارشنبه 18 شهریور 1394, 07:57 صبح
آقا فتحی عزیز بفرمائیذ این فیلم اموزشی طریقه ساخت update برای سی شارپ رو گفته.
http://learnfiles.com/downloads/%D9%81%DB%8C%D9%84%D9%85-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A2%D9%BE%D8%AF%DB%8C%D8%AA-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%A7%D8%B2-%D8%B7%D8%B1%DB%8C%D9%82-%D9%88%D8%A8-%D8%AF%D8%B1/