2011-02-25 8 views
11

में एप्लिकेशन डेटा को स्टोर करने के लिए कहां मेरे एप्लिकेशन को सबसे अधिक स्टोर डेटा की आवश्यकता है। एप्लिकेशन को पहले एक्सपी पर इस्तेमाल किया गया था जहां यह डेटा को Program Files में संग्रहीत करेगा। अब जब हमारे ग्राहक विंडोज 7 पर जा रहे हैं तो मुझे इसे अपग्रेड करना था ताकि यह डेटा को नए फ़ोल्डर में संग्रहीत कर सके। मैंने ApplicationData फ़ोल्डर का चयन किया क्योंकि मैंने सोचा था कि मुझे यूएसी की आवश्यकता के बिना पहुंच की अनुमति होगी।विंडोज 7 और Vista

अब कुछ विंडोज 7 मशीनों पर यह ठीक है, लेकिन अन्य लोगों के लिए अनुमतियों की वजह से विफलता की वजह से विफल रहता है, लेकिन जब प्रशासक निजीकरण के साथ भाग गया तो कार्यक्रम ठीक काम करता है।

क्या मैं गलत फ़ोल्डर का उपयोग कर रहा हूं या ये मामले बहिष्कार हैं? किसी भी मामले में इस तरह की चीज़ के लिए सबसे अच्छा अभ्यास क्या है?

मैं ऐपडेटा फ़ोल्डर स्थान प्राप्त करने के लिए निम्न C# SpecialFolder का उपयोग कर रहा हूं।

System.Environment.SpecialFolder.ApplicationData 

उत्तर

10

System.Environment.SpecialFolder.ApplicationData प्रति उपयोगकर्ता और रोम है। यह वही नहीं है जो आप चाहते हैं। आप मशीन चौड़ी सेटिंग्स चाहते हैं और इसलिए System.Environment.SpecialFolder.CommonApplicationData का उपयोग करना चाहिए।

क्योंकि CommonApplicationData सभी उपयोगकर्ताओं के बीच साझा किया गया है, डिफ़ॉल्ट पहुंच नियंत्रण सीमित है। डिफ़ॉल्ट रूप से मानक उपयोगकर्ता इस स्थान में नहीं लिख सकते हैं। अनुशंसित अभ्यास CommonApplicationData के उप-फ़ोल्डर को स्थापना समय पर बनाना है और इसे उचित रूप से एक्सेस नियंत्रण सेटिंग्स को अनुमति देना है।

+0

क्या मुझे 'CommonAplicationData'' तक पहुंचने के लिए यूएसी की आवश्यकता होगी जैसे मैं 'एप्लिकेशनडेटा' करता हूं? इसका मतलब यह भी नहीं होगा कि एक ही पीसी पर सभी उपयोगकर्ताओं के बीच डेटा साझा किया जाए? – Chris

+0

@Chris "क्या इसका मतलब यह नहीं होगा कि एक ही पीसी पर सभी उपयोगकर्ताओं के बीच डेटा साझा किया जाए?" हां, लेकिन आप पहले इसे 'प्रोग्राम फाइल' में संग्रहीत कर रहे थे जो मशीन-व्यापी है। –

2

डेविड सही है। जहाँ तक मुझे पता है, यदि आप क्लिकऑन या इंस्टॉलर के माध्यम से अपना ऐप तैनात करते हैं तो कुछ अंतर भी होता है: पहला सामान्य इंस्टॉलर की तुलना में अनुमतियों के कुछ सबसेट की अनुमति देता है। मुझे कबूल करना होगा कि मैं उस पर एक विशेषज्ञ नहीं हूं।

निश्चित रूप से, प्रोग्राम फ़ाइलें सबसे खराब डेटा स्टोर करने के लिए जगह है, यहां तक ​​कि XP ​​के बाद भी।

+0

आपका मतलब प्रोग्राम फ़ाइलें, प्रोग्रामडाटा एनटी 6 – Anders

+0

पर सामान्य एपडाटा फ़ोल्डर का नाम है! ... मेरा सिर खराब हो रहा है ... धन्यवाद एंडर्स! –