مشكلة في حفظ ملف تم تنزيله على سطح المكتب في WPF C #

عندما أستخدم:

  WebClient web = new WebClient();
  web.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChangedWeb);
  web.DownloadFileAsync(new Uri("http://www.website.com/Webs.exe"),
                            Environment.SpecialFolder.Desktop + @"\Webs.exe");

... لا شيء التنزيلات.

ولكن إذا قمت بتغييره إلى "

  WebClient web = new WebClient();
  web.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChangedWeb);
  web.DownloadFileAsync(new Uri("http://www.website.com/Webs.exe"),
                            Environment.SpecialFolder.Desktop + "Webs.exe");

ثم التنزيل ، ولكن أحصل على ملف اسمه "desktopWebs.exe". كيف يمكنني حفظ ملف على سطح المكتب؟

شكر

0

2 إجابة

ما تريده هو هذا ...

Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\Webs.exe";

وإلا فأنت تقوم فقط بوضع الكلمة على سطح المكتب بدلاً من المسار الفعلي.

0
وأضاف
آه ، أرى كيف يعمل هذا الآن. شكر!
وأضاف المؤلف JimDel, مصدر

يمكنك استخدام Path.Combine

web.DownloadFileAsync(new Uri("http://www.website.com/Webs.exe"),
                        Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "Webs.exe"));

ستقوم هذه الوظيفة بإدراج (أو إزالة) الشقوق تلقائيًا بالإضافة إلى التكيف مع أي نظام ملفات قيد الاستخدام

يجب أيضًا مراعاة استخدام Environment.SpecialFolder.DesktopDirectory ، يشير هذا إلى الموقع الفعلي الفعلي لمجلد سطح المكتب على القرص.

0
وأضاف
ما لم أفعل شيئًا خاطئًا ، هذا لا يعمل. ربما لأنني أستخدم WPF؟
وأضاف المؤلف JimDel, مصدر
لا يعمل SpecialFolder.DesktopDirectory بالنسبة لي سواء. أحصل على "System.Windows.Shapes.Path" لا يحتوي على تعريف "دمج"
وأضاف المؤلف JimDel, مصدر
سيعمل ذلك فقط إذا استخدمت حل KDiTraglia. شكرا لك على مساعدتك.
وأضاف المؤلف JimDel, مصدر
SpecialFolder.DesktopDirectory؟
وأضاف المؤلف jimmyjambles, مصدر
هذا هو فئة المسار الخطأ ، وهذا هو واحد يستخدم للرسم ، وأنا عنيت System.IO.Path
وأضاف المؤلف jimmyjambles, مصدر