Winform中获取相对路径的方法,除了放在Debug下还有别的吗?
stringpath=Application.StartupPath+@"\Image";pictureBox1.BackgroundImage=Image.FromFi...
string path= Application.StartupPath + @"\Image";
pictureBox1.BackgroundImage = Image.FromFile(path+@"\F1.png");
它只是字符串拼接出来的相对。有没有像.NET 中的相对方法呢?希望给予回复。 展开
pictureBox1.BackgroundImage = Image.FromFile(path+@"\F1.png");
它只是字符串拼接出来的相对。有没有像.NET 中的相对方法呢?希望给予回复。 展开
3个回答
展开全部
在应用程序中,取出的路径都是物理路径,一般况下,应用程序对自己启动路径下有读写的功能。所以取出的路径也都是物理路径的,所以应用程序不可能象网站应用程序一样取出的是虚拟路径。其不管是物理路径还是虚拟路径都是使用的绝对路径。只不过这里你理解成了相对于应用程序的路径而已。
在windows系统中并非所有路径是可读写的。有时软件并没有权限对其他目录进行读写。但事实上他也并非是指向了debug。而是启动路径。如果你做成安装程序,那么应用软件显然指向的是安装环境下的路径,而在调试时,因为启动程序在debug/release(bin下两个文件夹,主要看你是debug还是release)下,所以自然指向的是该路径。如果需要不同的路径,可以使用IO空间中的FilePath或直接使用File来定义指定的可读写路径即可。
因为,application是一个公共的,指明运行程序的环境,他只能指向自己启动路径,公共用户路径,用户数据路径。其实在网站用程序中的拼接方式同时是可以适用的。这就好比在server.mappath虽说是一个转换,其实也是自行拼接的结果。引用server.mappath时,能获得到相地的appdomain。说明白了,就是server可以得到你的应用程序的根路径,然后利用server.mappath其就是一个拼接的过程。
知道这个就好办了,要么你引用server,要么你自己直接写一个拼接的过程或写一个对象。
那么你利用自己函数进行拼接与直接拼接,还是写一个对象专门去拼接,有什么不一样的地方么?
在windows系统中并非所有路径是可读写的。有时软件并没有权限对其他目录进行读写。但事实上他也并非是指向了debug。而是启动路径。如果你做成安装程序,那么应用软件显然指向的是安装环境下的路径,而在调试时,因为启动程序在debug/release(bin下两个文件夹,主要看你是debug还是release)下,所以自然指向的是该路径。如果需要不同的路径,可以使用IO空间中的FilePath或直接使用File来定义指定的可读写路径即可。
因为,application是一个公共的,指明运行程序的环境,他只能指向自己启动路径,公共用户路径,用户数据路径。其实在网站用程序中的拼接方式同时是可以适用的。这就好比在server.mappath虽说是一个转换,其实也是自行拼接的结果。引用server.mappath时,能获得到相地的appdomain。说明白了,就是server可以得到你的应用程序的根路径,然后利用server.mappath其就是一个拼接的过程。
知道这个就好办了,要么你引用server,要么你自己直接写一个拼接的过程或写一个对象。
那么你利用自己函数进行拼接与直接拼接,还是写一个对象专门去拼接,有什么不一样的地方么?
来自:求助得到的回答
展开全部
如果你不指定绝对路径,其实就是相对的,比如上面的path,如果放在bin下面,那就改成
string path = @"..\image";
其他都一样,
查找文件时,如果不是绝对路径,那就按照相对路径来找,不需要特别的方法。
指定绝对路径是为了避免程序执行中当前目录变更,提高程序稳定性的。
string path = @"..\image";
其他都一样,
查找文件时,如果不是绝对路径,那就按照相对路径来找,不需要特别的方法。
指定绝对路径是为了避免程序执行中当前目录变更,提高程序稳定性的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
server.path(“”)根据相对转换为绝对路径!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询