2010-03-23 17 views
22

अर्थात् मेरे पास है:क्या निर्देशिका अलग आवेदन SpecialFolders है Windows XP और Windows Vista में को इंगित करते

  • Environment.SpecialFolder.ApplicationData
  • Environment.SpecialFolder.CommonApplicationData
  • Environment.SpecialFolder.LocalApplicationData

मैं स्पष्ट नहीं कर रहा हूँ के रूप में इन बिंदु थे करने के लिए विंडोज एक्सपी और/या विंडोज विस्टा में।

जो मैंने अभी तक पाया है वह है कि एप्लिकेशनडाटा XP में वर्तमान उपयोगकर्ता के लिए एप्लिकेशनडेटा फ़ोल्डर और Vista में रोमिंग एप्लिकेशन डेटा फ़ोल्डर के लिए इंगित करता है।

मैं यह भी जानना चाहूंगा कि किस समय उपयोग करने के लिए सामान्य दिशानिर्देश हैं या नहीं।

उत्तर

25

इसका कोई जवाब नहीं है। वास्तव में, यह ठीक है क्यों इन "स्पेशलफोल्डर" को परिभाषित किया गया है। आप हार्डकोडेड पथ के बजाय उन का उपयोग करते हैं।

Environment.SpecialFolder.ApplicationData सबसे आम है। यह फ़ोल्डर प्रति उपयोगकर्ता, गैर-अस्थायी एप्लिकेशन-विशिष्ट डेटा, उपयोगकर्ता दस्तावेज़ों के अलावा अन्य रखता है। एक सामान्य उदाहरण एक सेटिंग्स या विन्यास फाइल होगी।

Environment.SpecialFolder.CommonApplicationData समान है, लेकिन उपयोगकर्ताओं भर में साझा किया गया है। उदाहरण के लिए, आप दस्तावेज़ टेम्पलेट्स को स्टोर करने के लिए इसका उपयोग कर सकते हैं।

Environment.SpecialFolder.LocalApplicationData एप्लिकेशनडेटा के लिए एक गैर-रोमिंग विकल्प है। इस प्रकार, आप वहां कभी भी महत्वपूर्ण डेटा स्टोर नहीं करेंगे। हालांकि, क्योंकि यह गैर-रोमिंग है, यह अस्थायी फ़ाइलों, कैश, इत्यादि के लिए एक अच्छा स्थान है। यह आमतौर पर एक स्थानीय डिस्क पर है।

+0

सामान्य अनुप्रयोग डेटा का उपयोग उन वेबसाइटों और सेवाओं द्वारा भी किया जा सकता है जो सामान्य उपयोगकर्ता खाते के अंतर्गत C: \ Users \ फ़ोल्डर के साथ नहीं चलते हैं। –

+2

ध्यान दें कि CommonAplicationData ने प्रति-उपयोगकर्ता लिखने के विशेषाधिकारों के लिए अनिवार्य रूप से केवल पढ़ने के लिए पहुंच प्रतिबंधित कर दी है। उदाहरण के लिए, http://stackoverflow.com/questions/22107812/privileges-owner-issue-when-writing-in-c-programdata – DAG

10

यह जांचना आसान है। Use Environment.GetFolderPath(...); और MessageBox या Console.Write का उपयोग करें और यह आपको दिखाएगा कि यह कहां से इंगित करता है। आपको केवल सरल ऐप बनाना होगा जो आपके लिए पथ प्रदर्शित करेगा, और इसे विंडोज एक्सपी और विंडोज विस्टा के तहत चलाएगा।

using System; 

namespace EnvironmentCheck 
{ 
    class Program 
    { 
     static void Main(string[] args) 
    { 
     Console.Write(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\n"); 
     Console.Write(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)+ "\n"); 
     Console.Write(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)+ "\n"); 
    } 
} 
} 

7 विन 64 पर मेरे परिणाम

C: \ Users \ myUsername \ AppData \ रोमिंग
C: \ ProgramData
C: \ Users \ myUsername \ AppData स्थानीय

\
+1

अपने उत्तर के लिए धन्यवाद, बेशक मुझे उस साधारण ऐप से अवगत था, बस मैं नहीं करता सभी अलग-अलग विंडोज संस्करणों तक पहुंच नहीं है, लेकिन मुझे उपयोगकर्ता मशीन पर स्थापित अन्य अनुप्रयोगों से सेटिंग्स ढूंढनी होगी। मुझे विन 7 के लिए जवाब देने के लिए धन्यवाद, अब मैं कवर कर रहा हूं (मान लीजिए कि यह Vista के लिए समान होगा) क्योंकि मैं अभी भी XP चला रहा हूं। –

+0

मैंने देखा है कि user.config फ़ाइल को C: \ Users \ myUsername \ AppData \ Roaming में कंपनी के साथ रखा गया है और पथ में exe नाम जोड़ा गया है। क्या कंपनी और एक्सई नाम को इस पथ में जोड़ने का कोई तरीका है या क्या आपको इसे मैन्युअल रूप से करना है? –

+0

क्या आप इसे बेहतर तरीके से समझा सकते हैं जो आप खोज रहे हैं? शायद नया सवाल बनाएं और वहां विस्तृत करें? – MadBoy

1

किसी भी व्यक्ति जो यह जानना चाहता है कि ये विशेष फ़ोल्डर्स विंडोज एक्सपी पर क्या मूल्यांकन करते हैं लेकिन XP को चलाने के लिए यह नहीं है, यहां मैडबॉय के कोड को चलाने के दौरान मुझे क्या मिलता है:

ApplicationData: C: \ दस्तावेज़ और सेटिंग्स \ YourAccountHere \ Application Data

CommonApplicationData: C: \ दस्तावेज़ और सेटिंग्स \ सभी उपयोगकर्ता \ Application Data

LocalApplicationData: C: \ दस्तावेज़ और सेटिंग्स \ आपका खाता यहां \ स्थानीय सेटिंग्स \ अनुप्रयोग डेटा

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