2012-06-25 11 views
10

मेरे ऐप को कुछ फ़ाइलों को स्थापित करने की आवश्यकता है जिन्हें एप्लिकेशन द्वारा रन टाइम पर संपादित किया जा सकता है। शील्ड स्थापित करें एक उपनाम [CommonAppDataFolder] प्रदान करता है जो Vista: Windows 7 पर c: \ programData को हल करेगा और Windows XP पर भी काम करेगा। क्या कोई Win32 फ़ंक्शन है जो एक समान पथ लौटाएगा?Win32 फ़ंक्शन सी के लिए पथ प्राप्त करने के लिए: ProgramData

शायद मुझे ऑपरेटिंग सिस्टम के आधार पर विभिन्न कार्यों को कॉल करने की आवश्यकता है?

उत्तर

18

SHGetFolderPath/SHGetSpecialFolderPath आपको CSIDL_COMMON_APPDATA तर्क के साथ मिलता है।

यहां कोड स्निपेट देखें (नीचे): How to write a Windows XP Application that stores user and application data in the correct location by using Visual C++

  • Windows XP: C: \ दस्तावेज़ और सेटिंग्स \ सभी उपयोगकर्ता \ Application Data
  • Windows Vista: C: \ ProgramData
  • विंडोज 7: C: \ ProgramData

भी देखें: CSIDL

+0

ऐसा लगता है कि CSIDL_COMMON_APPDATA इस पर हल होगा: सी: \ दस्तावेज़ और सेटिंग्स \ सभी उपयोगकर्ता \ अनुप्रयोग डेटा सी: \ ProgramData के लिए पथ प्राप्त करने का कोई तरीका नहीं है? क्या यह इस तरह की फाइलों को स्टोर करने के लिए एक अच्छी जगह नहीं है? – Mike2012

+1

@ माइक2012, दोनों पथ एक ही उद्देश्य की सेवा करते हैं - एक एक्सपी और नीचे, और दूसरा Vista और ऊपर। तो परिणाम आप ओएस पर निर्भर करते हैं जो आप उपयोग करते हैं। – eran

+1

ऊपर देखें - जोड़ा गया नमूना पथ निरंतर विभिन्न विंडोज संस्करणों में हल हो जाता है –

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