C#绝对路径与相对路径

zhaoyuan0804 2010-06-09 03:10:15
假设我的应用程序的路径是E:\application\appl1,
有两句代码:
this.groupBox1.BackgroundImage = Image.FromFile(Application.StartupPath + "\\image\\middle.jpg");
this.groupBox2.BackgroundImage = Image.FromFile(Application.StartupPath + "\\image\\last.jpg");
这两句话要求image文件夹必须在E:\application\appl1\bin的debug下,因为Application.StartupPath得路径就是.exe的路径,所以必须把image文件夹放到debug文件夹下。
但是,如果我不把image文件夹放到debug下,那么Application.StartupPath应该改为什么方式获取路径呢?

也就是说:图片放在E:\application\appl1\image中,那么上面两句代码该怎么写呢?
非常感谢!!!
...全文
3238 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
dlt135 2011-09-13
  • 打赏
  • 举报
回复
xue xi le !
大月球 2011-07-24
  • 打赏
  • 举报
回复
this.groupBox1.BackgroundImage = Image.FromFile(@"E:\application\appl1\image\image\middle.jpg");
这样就可以了,或者你在vs中打开图片,在属性中查看路径,然后复制路径
qq542831317 2011-07-24
  • 打赏
  • 举报
回复
global::消防系统.Properties.Resources.onlinenone; 这个就可以得到文件夹Resources下的任意图片或者文件,或者换了文件加也行,在properties下就行,onlinenone就是那个图片名称,上面各位都说的好复杂啊!
pml1988 2011-04-25
  • 打赏
  • 举报
回复

假设00002.jpg 是在Photos 文件下,而Photos 是在Project 下面,可以用下面的代码实现其相对路径:、

string strpath1 = Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("bin"));
pictureBox1.Image = Image.FromFile(strpath1+ "Photos/00002.jpg");
flyyxw 2010-06-09
  • 打赏
  • 举报
回复
this.groupBox1.BackgroundImage = Image.FromFile(Application.StartupPath.substring(0,21) + "image\\middle.jpg");
dcj_gis2006 2010-06-09
  • 打赏
  • 举报
回复
学习了~~~谢谢
lzfutw 2010-06-09
  • 打赏
  • 举报
回复
来看看。。。
poloyzhang 2010-06-09
  • 打赏
  • 举报
回复
我一般相对路径写成如下
string sourcePath = @"wms\my_WMS.jpg"; //相对路径
string truePath = @"e:\wms\my_wms.jpg"; //绝对路径
用的时候引用变量 sourcePath 或 truePath
pasee 2010-06-09
  • 打赏
  • 举报
回复
Application.ExecutablePath.ToString()
另外守着互联网……
还有解决不了的问题?
比如在搜索引擎输入关键字:c# 取路径 回车ok~
「已注销」 2010-06-09
  • 打赏
  • 举报
回复
绝对路径吧,

否则就没意思了,人家这么设计就是为了把源码和发布过的程序分开,像网站一样弄一块,有点乱了
gohappy2008 2010-06-09
  • 打赏
  • 举报
回复
把image文件夹 放在可执行文件路径下就可以实现。
zhaoyuan0804 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 xie19sc 的回复:]
我个人觉得你如果不知道怎么去找路劲的话,最好的办法就是直接放在bin->Debug中新建个image文件夹

然后你获取图片的路径是:
this.groupBox1.BackgroundImage = Image.FromFile(Application.StartupPath + "image\\middle.jpg");


你试试看吧,应该是OK 的。。给分哈。。。
[/Quote]

恩,我就是像你说的这么做的,呵呵!不过仍然谢谢你奥!
daihua_1113 2010-06-09
  • 打赏
  • 举报
回复
用server根据文件名获取路径
xie19sc 2010-06-09
  • 打赏
  • 举报
回复
我个人觉得你如果不知道怎么去找路劲的话,最好的办法就是直接放在bin->Debug中新建个image文件夹

然后你获取图片的路径是:
this.groupBox1.BackgroundImage = Image.FromFile(Application.StartupPath + "image\\middle.jpg");


你试试看吧,应该是OK 的。。给分哈。。。
INGDI 2010-06-09
  • 打赏
  • 举报
回复
7楼和17楼
zhaoyuan0804 2010-06-09
  • 打赏
  • 举报
回复
麻烦大家再去关注一下这个帖子:http://topic.csdn.net/u/20100609/15/cdb12af0-4c9b-4068-84a1-727bc776c090.html?seed=380422151&r=66101702#r_66101702
大恩不言谢!!
smthgdin_020 2010-06-09
  • 打赏
  • 举报
回复
ResourceManager rm = ResourceManager.CreateFileBasedResourceManager("资源文件名", ".", null);

rm。GetImage(...);

记得是这样子。

[Quote=引用 19 楼 zhaoyuan0804 的回复:]
引用 16 楼 zzx509 的回复:
在项目的Properties下有Resources.resx资源文件,你也自己添加一个资源文件到项目中。
双击Resources.resx,添加资源->添加现有文件,选择需要的所有图片文件。

以后可以在本项目的任何地方访问以得到Image对象。

那在本项目中访问Image时,该怎么写呢?还真用过您这种方法!谢谢!!
[/Quote]
smthgdin_020 2010-06-09
  • 打赏
  • 举报
回复
主要问题就在于让程序知道从哪里开始去定位image文件位置。
你得告诉程序,而不能让程序自己去找。这样的话就像全盘搜索再去筛选了。
zhaoyuan0804 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 zzx509 的回复:]
在项目的Properties下有Resources.resx资源文件,你也自己添加一个资源文件到项目中。
双击Resources.resx,添加资源->添加现有文件,选择需要的所有图片文件。

以后可以在本项目的任何地方访问以得到Image对象。
[/Quote]
那在本项目中访问Image时,该怎么写呢?还真用过您这种方法!谢谢!!
smthgdin_020 2010-06-09
  • 打赏
  • 举报
回复
绝对路径法:把绝对路径写在配置文件里面,直接用代码读取路径,以后image文件夹挪地方了,直接改配置信息。
相对路径法:和exe放一起,因为exe程序本身知道自己所在位置。(这个不是你需要的)
资源文件法:把image放到资源文件里,读取资源文件获得相依图片,不过这个局限大。
加载更多回复(17)

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧