سؤال

لدي سؤال سريع حقا. يقوم برنامجي في التنزيل بالفعل بتنزيل ملف ZIP ثم استخراجه على سطح المكتب الخاص بهم. لكنني أحتاج إلى ميزة إلغاء التثبيت لذلك، والتي تحذف بشكل أساسي مجلدات متعددة واحتواء الملفات. كيف يمكنني القيام بذلك في vb.net؟

هل كانت مفيدة؟

المحلول

إذا كانت جميع مجلداتك موجودة في مجلد واحد، فينبغي أن تكون مستقيمة تماما إلى الأمام.

Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\YOURPATH"
System.IO.Directory.Delete(path, True)

من شأنه أن يحذف الدليل الجذر الخاص بك، وجميع الدلائل والملفات الموجودة أسفلها. يمكنك فقط استدعاء هذا مرة أخرى إذا لم تكن الملفات والدلائل الخاصة بك في دليل جذر واحد مثل "YourPath" في المثال. هذا سوف يدخرك من الاضطرار إلى إزالة كل ملف على حدة.

نصائح أخرى

وحدة .NET IO لديها أوامرين يجب أن تدعك تفعل الخدعة:

System.IO.Directory.GetDirectories("C:\\Program Files\\Your Directory\\*.*");
System.IO.Directory.GetFiles("C:\\Program Files\\Your Directory\\*.*");

أود أن أكتب طريقة تأخذ اسم دليل وتستخدم روتين "etfiles" للحصول على جميع الملفات وحذفها باستخدام system.io.file.delete (المسار) في حلقة Foreach. بعد ذلك، قم بتشغيل حلقة Foreach على نتيجة الأمر الذي يدعون إليه () يدعو الوظيفة بشكل متكرر.

تحديث: يشير ستيف داننر إلى أن مساحة الاسم System.IO.Directory لديها طريقة حذف حتى لا تحتاج إلى الذهاب من خلال الحلقات التي أتحدث عنها هنا. جوابه هو الصحيح ويجب التصويت عليه. منجم، في هذه المرحلة، هو مجرد فضول (على الرغم من أن شكرا لك على الشخص الذي أعطاني الرسوم المقدمة؛ 0).

تبحث عن دليل الدليل باستخدامها، واستخدامها مثل هذا:

Dim di As New IO.DirectoryInfo(path)
di.Delete(True)
Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\YOURPATH"
System.IO.Directory.Delete(path, True)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top