2010-11-14 8 views
5

मैं एनटीएफएस पर मौजूदा फ़ोल्डर्स में अपना खुद का कस्टम डेटा/गुण जोड़ना चाहता हूं, ताकि यदि कोई फ़ोल्डर स्थानांतरित हो जाए, तो गुण इसके साथ आगे बढ़ते हैं। एक समाधान फ़ोल्डर में फ़ाइल को स्टोर करने के लिए जो भी मुझे चाहिए या जो भी चाहिए, को स्टोर करना होगा।क्या कोई एनटीएफएस फ़ोल्डरों में कस्टम गुण जोड़ सकता है?

जो मुझे विशेष रूप से रूचि है, यह है कि निर्देशिका फ़ाइल सिस्टम ऑब्जेक्ट में कस्टम गुण जोड़ने का कोई तरीका है या नहीं।

+0

http://stackoverflow.com/questions/1235150/ उन्हें दिखाने dsofile-ग-api-NTFS-custo m-file-Properties –

उत्तर

2

यदि आप बहादुर महसूस कर रहे हैं ( या मूर्ख) शायद Alternative Data Stream एक विकल्प होगा।

मुझे यकीन है कि के रूप में एक सामान्य फाइल करने का विरोध किया है और यह चिंताओं विचार करने की आवश्यकता है कि से अटे पड़े है एक निर्देशिका करने के लिए लागू किया जा सकता है, तो नहीं कर रहा हूँ:

  1. कोई मानक खिड़कियों उपयोगकर्ता उपकरण है कि उन्हें भी सूची नहीं है (उदाहरण के लिए एक्सप्लोरर या cmd प्रॉम्प्ट से नहीं देख सकता है, लेकिन सही नाम दिए गए अधिकांश कार्यक्रमों में खोला जा सकता है)।
  2. वे एनटीएफएस फाइल सिस्टम को अच्छी तरह से स्थानांतरित नहीं करेंगे।
  3. वे कुछ एवी झंडे भी उठा सकते हैं, मुझे नहीं पता।

हैप्पी कोडिंग।

+2

वैकल्पिक डेटा स्ट्रीम के बारे में कुछ भी मूर्ख नहीं है, वे इस तरह की चीज़ के लिए डिज़ाइन किए गए हैं। और, हाँ, वे निर्देशिकाओं पर काम करते हैं। – snoone

1

यहाँ ग # में एक तरह से फ़ाइल कस्टम गुण

DSOFile.OleDocumentPropertiesClass file = new DSOFile.OleDocumentPropertiesClass(); 

file.Open(@"C:\setup.exe", false, DSOFile.dsoFileOpenOptions.dsoOptionDefault); 

string key = "key1"; 

object value = "value1"; 

// Adds new custom property. 

file.CustomProperties.Add(key, ref value); 

// Go through existing custom properties. 

foreach (DSOFile.CustomProperty p in file.CustomProperties) 

{ 
Console.WriteLine("{0}:{1}", p.Name, p.get_Value().ToString()); 
} 

file.Close(true); 

file.CustomProperties.Add (कुंजी, रेफरी मूल्य) में सबसे पहले दिखाने के लिए है, विशेषता कुंजी को संशोधित (संपत्ति के द्वारा, आप इसे संशोधित कर सकते हैं, यहाँ है कि यहाँ उनके वास्तविक मूल्यों से नामों से स्थिरांक रूप में वर्णित हैं निम्नलिखित हैं। कुंजी में आप निम्नलिखित attribute_names में से एक रखना चाहिए,

Const FILE_ATTRIBUTE_READONLY = 1 
Const FILE_ATTRIBUTE_HIDDEN = 2 
Const FILE_ATTRIBUTE_SYSTEM = 4 
Const FILE_ATTRIBUTE_DIRECTORY = &H10 
Const FILE_ATTRIBUTE_ARCHIVE = &H20 
Const FILE_ATTRIBUTE_ENCRYPTED = &H40 
Const FILE_ATTRIBUTE_NORMAL = &H80 
Const FILE_ATTRIBUTE_TEMPORARY = &H100 
Const FILE_ATTRIBUTE_SPARSE_FILE = &H200 
Const FILE_ATTRIBUTE_REPARSE_POINT = &H400 
Const FILE_ATTRIBUTE_COMPRESSED = &H800 
Const FILE_ATTRIBUTE_OFFLINE = &H1000 
Const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = &H2000 

तो फिर तुम प्रत्येक में से प्रत्येक के गुण देखने के लिए निरंतर के लिए वांछित मूल्य निर्दिष्ट करना चाहिए, मूल्य

तब में दायर यह लाइन पर

Console.WriteLine("{0}:{1}", p.Name, p.get_Value().ToString()); 
संबंधित मुद्दे