2008-09-11 16 views
16

मैं एक ऐसा एप्लिकेशन बना रहा हूं जो विंडोज, मैक और लिनक्स को जल्द ही लक्षित कर रहा है। मैं सोच रहा था कि मुझे एप्लिकेशन डेटा जैसे सेटिंग्स, आदिक्रॉस-प्लेटफ़ॉर्म ऐप्स को अपना डेटा कहां रखना चाहिए?

एप्लिकेशन का इंस्टॉलेशन फ़ोल्डर सबसे आसान विकल्प है, लेकिन मुझे लगता है कि यह नया Vista सुरक्षा मॉडल में समस्या हो सकती है। इसके अलावा, उपयोगकर्ता अलग-अलग सेटिंग्स चाहते हैं।

क्या यह सी: \ दस्तावेज़ और सेटिंग्स \ उपयोगकर्ता नाम \ MyApp Vista और XP दोनों के लिए अच्छा है? क्या यह /home/username/.MyApp लिनक्स और मैक के लिए अच्छा है?

किसी भी विचार और/या सर्वोत्तम प्रथाओं के लिंक बहुत सराहना की।

धन्यवाद!

जुआन

+0

क्रिस्टोफर का जवाब तकनीकी रूप से सही है लेकिन fwiw, ~ मैक पर फ़ोल्डर/उपयोगकर्ता नहीं है/होम – username

उत्तर

12

प्रत्येक मंच उपयोगकर्ता के घर फ़ोल्डर, या दस्तावेज फ़ोल्डर, या वरीयताओं फ़ोल्डर खोजने के लिए अपने स्वयं के एपीआई है।

  • विंडोज: SHGetFolderPath() या SHGetKnownFolderPath()
  • मैक ओएस एक्स और iPhone OS: NSSearchPathForDirectoriesInDomains()
  • यूनिक्स: $ HOME वातावरण चर

विशिष्ट पथ को हार्डकोड नहीं है या बस उपयोगकर्ता के नाम पर एक उपसर्ग और प्रत्यय का सामना करें। साथ ही, फाइलों के नामकरण के लिए मंच के लिए जो भी सम्मेलन हैं, उनका पालन करने का प्रयास करें।

2

मैं नहीं कर रहा हूँ :)

मैं मैक/लिनक्स में Windows में USERPROFILE और घर उपयोग कर रहा हूँ। लेकिन फिर भी, मुझे यह जानने की जरूरत है कि वे सही जगह हैं।

धन्यवाद!

2

विंडोज़ में आपको केवल उपयोगकर्ता प्रोफ़ाइल की तुलना में एक और स्तर गहराई जाने की आवश्यकता है। एप्लिकेशन डेटा फ़ोल्डर का प्रयोग करें।

1

कभी भी एप्लिकेशन फ़ोल्डर में उपयोगकर्ता डेटा स्टोर न करें। यह सिर्फ एक बुरा विचार है।

अधिकांश ऑपरेटिंग सिस्टमों में $ HOME (या% HOME%) वातावरण चर होता है। यह देखने के लिए पहली जगह होगी।

यदि आप कई ऑपरेटिंग सिस्टमों को साफ़ रूप से समर्थन देना चाहते हैं, तो आपको प्रत्येक के लिए कुछ ओएस-विशिष्ट कोड होना होगा, जहां आंकड़े ठीक से चलने की ज़रूरत है। (~/मैक ओएस के लिए लाइब्रेरी, ~/.config के लिए GNOME- आधारित सिस्टम,% HOME%/विंडोज़ के लिए अनुप्रयोग डेटा, आदि)।

2

विंडोज़ पर मैं एपडाटाटा का उपयोग करता हूं, और लिनक्स पर मैं होम का उपयोग करता हूं।

5

सर्वोत्तम प्रथाओं के संबंध में, जेफ है कि आप उपयोगी लग सकते प्रदूषणकारी उपयोगकर्ता अंतरिक्ष पर एक लेख पोस्ट किया है: Don't Pollute User Space

+0

बहुत अच्छा लिंक, धन्यवाद। मजेदार बात यह है कि मैंने जेफ के ब्लॉग की सदस्यता ली है, मुझे बस उस पोस्ट को याद नहीं आया। एक बार फिर धन्यवाद! –

+2

लिंक टूटा हुआ है:/(अनुमान जेफ ने नहीं पढ़ा [कूल यूआरआई मत बदलें] (http://www.w3.org/Provider/Style/URI.html)) –

4

एक सामान्य बात के रूप में, मैं एक 'सेटिंग प्रदाता' में अपनी सेटिंग्स के कार्यान्वयन सार संक्षेप की सलाह देते हैं और प्रत्येक मंच के लिए विभिन्न प्रदाताओं प्रदान करते हैं। इस तरह, आप सेटिंग्स के संग्रहण को उस तरीके से कार्यान्वित कर सकते हैं जो लक्षित प्लेटफॉर्म पर सर्वोत्तम रूप से उपयुक्त है (उदाहरण के लिए, लिनक्स या विंडोज रजिस्ट्री पर एक फ़ाइल)।

बस 'सबसे कम आम denominator' अपनाने मत करो।जहां आपके पास ऐसी सामग्री है जो फ़ाइलों में संग्रहीत स्पष्टीकरण होनी चाहिए, तो अपने सेटिंग्स प्रदाता उन फ़ाइलों के लिए प्लेटफ़ॉर्म-विशिष्ट स्थान का पर्दाफाश करें।

1

आप किस भाषा इस्तेमाल की योजना बना रहे हैं? जावा, उदाहरण के लिए, एक समर्पित Preference API है।

संबंधित मुद्दे