2009-08-26 16 views
6

मेरे पास फ़ोल्डर "आइकन" है। मुझे imageList पर आइकन जोड़ने के लिए एक ही एक्सेस करने की आवश्यकता है। मैं app.config फ़ाइल का उपयोग कर रहा हूं जिसमें एक सापेक्ष पथ है।App.config सापेक्ष पथ

<add key="doc" value="..\Icons\_Microsoft Office Excel 97-2003 Worksheet.ico" /> 

और मैं imgList में जोड़ने के लिए नीचे दिए गए कोड का उपयोग कर रहा है, तथापि यह System.IO.FileNotFoundException फेंकता है:

smallImageList.Images.Add(Image.FromFile(ConfigurationSettings.AppSettings["doc"])); 

क्या समस्या यहाँ है?

उत्तर

7

वर्तमान चल पथ जोड़ने का प्रयास करें:

smallImageList.Images.Add(Image.FromFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationSettings.AppSettings["doc"]))); 
+0

इसके लिए धन्यवाद, यह काम कर रहा है .. भी पथ। गेटफुलपैथ (कॉन्फ़िगरेशन सेटिंग्स। ऐप सेटिंग्स ["डॉक्टर"]); यह काम करता है..मैं जानना चाहता था कि छोटे इमेजलिस्ट.इमेज में जोड़ें। (छवि। फ्रॉमफाइल (कॉन्फ़िगरेशन सेटिंग्स। ऐप सेटिंग्स ["डॉक्टर"]); – Anees

+0

smallImageList.Images.Add (Image.FromFile (Path.GetFullPath (ConfigurationSettings.AppSettings ["डॉक्टर"])); – Anees

+0

इसे उत्तर के रूप में चिह्नित किया जाना चाहिए था। समस्या यह प्रतीत होती है कि 'Image.FromFile' एक पूर्ण पथ की अपेक्षा करता है, न कि एक रिश्तेदार। – Oliver

0

एक टिल्डा उपयोग करने का प्रयास ...

value="~\Icons_Microsoft Office Excel 97-2003 Worksheet.ico" 

जो तुम आवेदन जड़ से शुरू कर देना चाहिए।

2

आपको सिस्टम.AppDomain.CurrentDomain.BaseDirectory के साथ इसे संयोजित करने की आवश्यकता हो सकती है।

मुझे लगता है कि FromFile वर्तमान कार्यशील निर्देशिका से संबंधित है जो बदलने के लिए प्रवण है। विचार करने की दूसरी बात असेंबली

+0

वाह, मुझे वह नहीं पता था। बहुत बहुत सरल है कि मेरे GetExecutingAssembly() समाधान ... – Vinzz

0

में छवियों को एम्बेड करना होगा आपके प्रोग्राम निष्पादन के दौरान आपके कामकाजी फ़ोल्डर को किसी भी तरह संशोधित किया गया है, आपको अपना रास्ता खोजना होगा।

इस प्रयास करें:

गुणों के
using System.Reflection; 
string CurrDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 

smallImageList.Images.Add(Image.FromFile(Path.Combine(CurrDirectory,ConfigurationSettings.AppSettings["doc"]))); 
+0

हाय Vinzz, यह पथ सी को पुन: प्राप्त: \ दस्तावेज़ और सेटिंग्स \ व्यवस्थापक \ My Documents \ विजुअल स्टूडियो 2008 \ परियोजनाओं \ IconsLoadinginTreeview_Files_Demo \ IconsLoadinginTreeview_Files_Demo \ बिन \ डीबग \। । \ प्रतीक \ _ माइक्रोसॉफ्ट ऑफिस एक्सेल 97-2003 वर्कशीट.िको ".." फाइलपैथ में फिर से त्रुटि – Anees

+0

फेंक रहा है बेशक, आपका माइलेज भिन्न हो सकता है। यदि आवश्यक हो तो वहां एक अतिरिक्त '..' जोड़ें। मुझे नहीं पता कि आपके आइकन वास्तव में कहां हैं; ओ) बीटीडब्ल्यू, ऐसा लगता है कि आपको पहले से ही एक समाधान मिला है, है ना? – Vinzz

2

जाओ, संपत्ति 'आउटपुट निर्देशिका को कॉपी' खोजने के लिए और "कॉपी हमेशा" चुनें। तो यह ठीक होना चाहिए। उम्मीद है कि यह मदद करेगा।

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