2008-09-18 13 views
33

वहाँ किसी भी तरह से है कि मैं प्रोग्राम के रूप में बना सकते हैं है (और मैं पहुँच लगता है) ग # के भीतर से एक भंडारण युक्ति पर छिपा फ़ोल्डरों?बनाना छिपा फ़ोल्डरों

+1

, retagged के रूप में इस गूगल –

उत्तर

84
using System.IO; 

string path = @"c:\folders\newfolder"; // or whatever 
if (!Directory.Exists(path)) 
{ 
DirectoryInfo di = Directory.CreateDirectory(path); 
di.Attributes = FileAttributes.Directory | FileAttributes.Hidden; 
} 
+8

सबसे पहले परिणाम नहीं है अब आप गूगल पर पहले परिणाम हैं। –

+7

पर एक सी # भाषा-विशिष्ट प्रश्न – KDecker

24

हाँ आप कर सकते हैं। निर्देशिका को सामान्य के रूप में बनाएं, फिर उस पर विशेषताओं को सेट करें। जैसे

DirectoryInfo di = new DirectoryInfo(@"C:\SomeDirectory"); 

//See if directory has hidden flag, if not, make hidden 
if ((di.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden) 
{ 
    //Add Hidden flag  
    di.Attributes |= FileAttributes.Hidden;  
} 
+0

खंड को कम किया जा सकता है, तो 'if (! Di.Attributes.HasFlag (FileAttributes.Hidden))' – schoetbi

4
string path = @"c:\folders\newfolder"; // or whatever 
if (!System.IO.Directory.Exists(path)) 
{ 
    DirectoryInfo di = Directory.CreateDirectory(path); 
    di.Attributes = FileAttributes.Directory | FileAttributes.Hidden; 
} 

here से।

6
CreateHiddenFolder(string name) 
{ 
    DirectoryInfo di = new DirectoryInfo(name); 
    di.Create(); 
    di.Attributes |= FileAttributes.Hidden; 
} 
-2

कोड केवल रूट फ़ोल्डर पथ प्राप्त करने के लिए कोड।

हम सी है, तो जैसा:/टेस्ट/ सी:/टेस्ट/एबीसी सी:/टेस्ट/xyz सी:/Test2/ सी:/Test2/एमएनपी

यह वापस आ जाएगी जड़ फ़ोल्डरों पथ यानी सी:/टेस्ट/ सी:/Test2/

  int index = 0; 
      while (index < lst.Count) 
      { 
       My obj = lst[index]; 
       lst.RemoveAll(a => a.Path.StartsWith(obj.Path)); 
       lst.Insert(index, obj); 
       index++;      
      } 
+6

कोड विवरण के बिना उदासीनता शायद ही कभी उपयोगी होते हैं। कृपया इसमें कुछ संदर्भ जोड़ें। (साथ ही, आपको यह जानने में रुचि हो सकती है कि आपने 6 साल से अधिक की एक पोस्ट का उत्तर दिया है ...) – Chris