2009-08-26 6 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

고마워요. 그게 .. .. Path.GetFullPath (ConfigurationSettings.AppSettings [ "doc"]); 이 작품은 .. 내가 알고 싶었 메신저 무엇인가 잘못이다 smallImageList.Images.Add (Image.FromFile (ConfigurationSettings.AppSettings [ "doc"]))); – Anees

+0

smallImageList.Images.Add (Image.FromFile (Path.GetFullPath (ConfigurationSettings.AppSettings [ "doc"])))); – Anees

+0

답변으로 표시되어야합니다. 문제는'Image.FromFile'은 상대 경로가 아닌 절대 경로를 기대한다는 것입니다. – Oliver

0

는 틸다를 사용해보십시오 ... 응용 프로그램 루트에서 당신을 시작해야

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

.

2

System.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, 는 경로 C를 검색합니다 : \ 문서 및 설정 \ 내 문서 프로젝트 \ \ IconsLoadinginTreeview_Files_Demo \ IconsLoadinginTreeview_Files_Demo \ 빈 \ 디버그 \를 비주얼 스튜디오 2008 \ \ ADMIN. . \ Icons \ _Microsoft Office Excel 97-2003 Worksheet.ico filPath에서 ".."오류가 다시 발생 함 – Anees

+0

물론, 귀하의 마일리지는 다를 수 있습니다. 필요한 경우 추가 '..'를 추가하십시오. 나는 당신의 아이콘이 실제로 어디에 있는지 모르겠다;) Btw, 당신은 이미 해결책을 찾은 것 같은가요? – Vinzz

2

이동 호텔 '출력 디렉토리에 복사'를 찾아 "항상 복사"를 선택합니다

이보십시오. 그럼 괜찮을거야. 희망이 도움이 될 것입니다.