2010-02-11 15 views
14

मेरे पास वास्तव में एक त्वरित प्रश्न है। मेरा प्रोग्राम वास्तव में एक ज़िप फ़ाइल डाउनलोड करता है और फिर इसे अपने डेस्कटॉप पर निकाल देता है। लेकिन मुझे इसके लिए एक अनइंस्टॉल सुविधा की आवश्यकता है, जो मूल रूप से एकाधिक फ़ोल्डरों को हटा रहा है और फाइलें हैं। मैं vb.net में यह कैसे कर सकता हूं?फ़ोल्डरों को हटाएं और फाइलें

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

मैं एक विधि है कि एक निर्देशिका का नाम लेता है और सब पाने के लिए "GetFiles" नियमित उपयोग करता लिखना होगा:

उत्तर

35

यदि आपके सभी फ़ोल्डर्स एक फ़ोल्डर में निहित हैं, तो यह बहुत सीधे आगे होना चाहिए।

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

इससे आपकी मूल निर्देशिका, और नीचे दी गई सभी निर्देशिकाएं और फ़ाइलें हटा दी जाएंगी। उदाहरण के लिए आप अपनी फाइलें और निर्देशिकाएं एक रूट रूट निर्देशिका में नहीं हैं, तो आप इसे कई बार कॉल कर सकते हैं। यह आपको प्रत्येक फ़ाइल को अलग-अलग हटाने से रोक देगा।

+4

+1 - कभी एक निर्देशिका नष्ट कर दिया है, मैं एक हटाएँ विधि के लिए निर्देशिका वस्तु में देख के बारे में सोच नहीं किया। यह जवाब मेरा से बेहतर है। –

3

नेट आईओ इकाई एक दो आदेशों आप चाल कर देना चाहिए कि है फ़ाइलों का और उन्हें foreach loop में System.IO.File.Delete (पथ) का उपयोग करके हटाएं। फिर, GetDirectories() कमांड के परिणाम पर फ़ोरैच लूप चलाएं जो फ़ंक्शन को रिकर्सिवली कॉल करता है।

अपडेट: स्टीव डैनर बताते हैं कि System.IO.Directory नेमस्पेस में एक डिलीट विधि है, इसलिए आपको यहां लूप के माध्यम से जाने की आवश्यकता नहीं है। उसका उत्तर सही है और इसे वोट दिया जाना चाहिए। मेरा, इस बिंदु पर, जिज्ञासा से अधिक है (हालांकि उस व्यक्ति को धन्यवाद जो मुझे अपवर्तित करता है; 0)।

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

कुछ विवरण जोड़ने से आपके उत्तर अधिक स्वादपूर्ण हो जाएंगे –

-1

आपका DirectoryInfo लिए देख रहे हैं, इस तरह इसका इस्तेमाल:

Dim di As New IO.DirectoryInfo(path) 
di.Delete(True)