我有“图标”文件夹。
我需要访问它才能向imageList
添加图标。
我正在使用具有相对路径的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"]));
这里有什么问题?
答案 0 :(得分:7)
尝试添加当前的运行路径:
smallImageList.Images.Add(Image.FromFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationSettings.AppSettings["doc"])));
答案 1 :(得分:2)
您可能需要将其与System.AppDomain.CurrentDomain.BaseDirectory连接。
我猜想FromFile是相对于当前工作目录很容易改变的。另一件需要考虑的事情是将图像嵌入到程序集中
答案 2 :(得分:2)
转到媒体资源,找到&#39;复制到输出目录&#39;财产并选择&#34;永远复制&#34; 。那应该没问题。希望它会有所帮助。
答案 3 :(得分:0)
尝试使用tilda ......
value="~\Icons_Microsoft Office Excel 97-2003 Worksheet.ico"
哪个应该从应用程序根目录开始。
答案 4 :(得分:0)
您的工作文件夹在程序执行期间以某种方式被修改过,您必须找到自己的路径。
试试这个:
using System.Reflection;
string CurrDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
smallImageList.Images.Add(Image.FromFile(Path.Combine(CurrDirectory,ConfigurationSettings.AppSettings["doc"])));