दिलचस्प पोस्ट
मॉड्यूल स्तरीय रिटर्न स्टेटमेंट Node.js में क्यों काम करता है? जीआईटी: क्लोन काम करता है, दूरस्थ पुश नहीं करता। Copssh पर रिमोट रिपोजिटरी Google मानचित्र एपीआई V3: क्षेत्र सीमा निर्देशांक (पॉलीलाइन) डेटा कैसे प्राप्त करें? कश्मीर के बराबर क्लस्टर आकार के साथ एल्गोरिथ्म भिन्नता का मतलब है टॉमकेट गिस / जेडीबीसी मेमोरी लीक एक कस्टम तुलनित्र के साथ c ++ में प्राथमिकता_एक्यू को घोषित करता है जावास्क्रिप्ट में फास्ट फ़ैक्टोरियल फंक्शन अजगर में, मैं किसी अन्य सूची के साथ एक सूची कैसे इंडेक्स करूँ? XML फ़ाइलों को कैसे पढ़ा और लिखना है? Xcode बिल्ड विफलता "आर्किटेक्चर के लिए अनिर्धारित प्रतीकों x86_64" फॉर-लूप में सेट टाइमआउट सलग मानों को प्रिंट नहीं करता मैं जावा प्रतिबिंब का उपयोग कर विधि पैरामीटर नाम प्राप्त कर सकता हूँ? "एक प्रोग्राम को एक गलत स्वरूप के साथ लोड करने का प्रयास किया गया" भले ही प्लेटफ़ॉर्म समान हो वस्तुओं की सरणी में जावास्क्रिप्ट सरणी लंबाई गलत है UITableView पंक्ति नंबर को कैसे जानिए

सी #% AppData% के पथ को प्राप्त करना

सी # 2008 एसपी 1

मैं नीचे दिए गए कोड का उपयोग कर रहा हूं:

dt.ReadXml("%AppData%\\DateLinks.xml"); 

हालांकि, मुझे एक अपवाद मिल रहा है जो उस स्थान के लिए इंगित करता है जहां से मेरा आवेदन चल रहा है:

पथ 'डी: \ प्रोजेक्ट्स \ सबवेर्सियन प्रोजेक्ट्स \ कैटडीयलर \ बिन \ डीबग \% AppData% DateLinks.xml' का कोई हिस्सा नहीं मिल सका।

मैंने सोचा था कि %AppData% को रिश्तेदार पथ खोजना चाहिए। जब मैं Start|Run|%AppData% जाता हूं Start|Run|%AppData% विंडो एक्सप्लोरर मुझे उस निर्देशिका में ले जाता है

मैं पूर्ण पथ नहीं डाल सकता, क्योंकि उपयोगकर्ता प्रत्येक क्लाइंट मशीन पर अलग है।

किसी भी सलाह के लिए बहुत धन्यवाद,

वेब के समाधान से एकत्रित समाधान "सी #% AppData% के पथ को प्राप्त करना"

AppData निर्देशिका प्राप्त करने के लिए, GetFolderPath विधि का उपयोग करना सबसे अच्छा है:

 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 

%AppData% एक वातावरण चर है, और वे स्वचालित रूप से एनएटी में कहीं भी विस्तारित नहीं हैं, हालांकि आप स्पष्ट रूप से Environment.ExpandEnvironmentVariable उपयोग कर सकते हैं। Environment.ExpandEnvironmentVariable लिए ऐसा करने के तरीके मैं अभी भी जोरदार सुझाव देता हूं कि आप GetFolderPath उपयोग करते हैं, क्योंकि जोहान्स रॉसेल टिप्पणी में बताते हैं, %AppData% कुछ निश्चित परिस्थितियों में सेट नहीं किया जा सकता है।

अंत में, अपने उदाहरण में दिखाए गए पथ को बनाने के लिए:

 var fileName = Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.ApplicationData), "DateLinks.xml"); 

यदि आप ASP.NET बात कर रहे हैं तो पथ अलग है

मुझे 'स्पेशलफ़ोल्डर' मानों में से कोई भी नहीं मिल रहा था जो कि एएसपी.नेट के लिए / App_Data की ओर इशारा करते थे।

इसके बजाय आपको यह करने की आवश्यकता है:

  HttpContext.Current.ApplicationInstance.Server.MapPath("~/App_Data") 

(नोट: आपको एक एमवीसी नियंत्रक में 'वर्तमान' संपत्ति की आवश्यकता नहीं है)

यदि App_Data को प्राप्त करने के लिए एक और 'सार' तरीके से यह सुनना अच्छा लगेगा कि कैसे।

AppData निर्देशिका का उपयोग करने का सबसे अच्छा तरीका, Environment.ExpandEnvironmentVariable का उपयोग करने के लिए है। एक्सपांड Environment.ExpandEnvironmentVariable तरीका

कारण:

  • यह आपकी स्ट्रिंग के कुछ हिस्सों को मान्य निर्देशिकाओं के साथ या जो कुछ भी बदलता है
  • यह केस असंवेदनशील है
  • यह आसान और सरल है
  • यह एक मानक है
  • उपयोगकर्ता इनपुट से निपटने के लिए अच्छा है

उदाहरण:

 string path; path = "%AppData%\stuff"; path = "%aPpdAtA%\HelloWorld"; path = "%progRAMfiLES%\Adobe;%appdata%\FileZilla"; // collection of paths path = Environment.ExpandEnvironmentVariables(path); Console.WriteLine(path); 

याद रखें कि कुछ उपयोगकर्ता प्रकार %AppData% , कुछ %APpData% और कुछ %APpData% आप इस के साथ समाप्त नहीं करना चाहते हैं:

 if (path.ToLower().StartsWith("%appdata%")) ; // path manipulation if (path.ToLower().StartsWith("%programfiles%")) ; // path manipulation 

अगर पर्यावरण चर सेट नहीं है, यह आपकी गलती नहीं है (इसके अलावा जब यह है )। मैं आम तौर पर लोगों को पहिया का पुन: आविष्कार नहीं करने के बारे में बताता हूं लेकिन जब मैं पहली बार दूसरी तरफ गया और महसूस किया कि यह एक बुरा विचार था।

आप भी उपयोग कर सकते हैं

 Environment.ExpandEnvironmentVariables("%AppData%\\DateLinks.xml"); 

%AppData% variable को विस्तारित करने के लिए

.net2.0 में आप चर application.UserAppDataPath का उपयोग कर सकते हैं

मुझे नहीं लगता कि% AppData% को स्ट्रिंग में जैसे काम करेगा

प्रयत्न

 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).ToString() 

बस मेरे एमवीसी अनुप्रयोग में 'App_Data' फ़ोल्डर तक पहुंचने का एक और तरीका साझा करना चाहता था, अगर किसी को इसकी आवश्यकता है

  Path.Combine(HttpRuntime.AppDomainAppPath,"App_Data")