在类库项目文件中能否获取文件的绝对路径?

时间:2020-12-14 18:44:58
我想在类库项目文件的程序中判断某个图片文件是否存在,不存在则进行相应处理,但在这个类库项目文件中却不能像在代码后置类的aspx.cs文件中那样可以使Server.MapPath() 求出图片的绝对路径,在网上搜索了一下找不到解决的办法,请路过的高手指点一下,并祝六一儿童节大家都快乐,谢谢!!!

19 个解决方案

#1


System.Web.HttpContext.Current.Server.MapPath

#2


可以用MapPath()

用System.Web.HttpContext.Current.Server.MapPath()就OK了

#3


风过无痕

#4


System.Web.HttpContext.Current.Server.MapPath()
正确

#5


System.Web.HttpContext.Current.Server.MapPath("");

#6


同上

#7


我是搂猪
在代码后置的.aspx.cs文件中可以用System.Web.HttpContext.Current.Server.MapPath(),但在类库项目文件中输到"System.Web."后只出来AspNetHostingPermission、AspNetHostingPermissionAttribute、AspNetHostingPermissionLevel三项,没有HttpContext的,请高手再具体说明一下,谢谢!!!

#8


不可能啊,我都是在类库中用这个的啊。

你直接copy进去,看编译有没有问题

#9


BearRui(孤熊 | 带你去看海!)

不可能啊,我都是在类库中用这个的啊。

你直接copy进去,看编译有没有问题

=====================================

兄弟,真的可以吗?编译报错了:

错误 CS0234: 命名空间“System.Web”中不存在类型或命名空间名称“HttpContext”(是缺少程序集引用吗?)

还需要 using 什么吗?

#10


没有显示就添加System.Web的引用啊,这个不用我教吧...

#11


只要你的web请求不是异步执行的 就可以那么用 要是异步执行那就要自己保留哪个System.Web.HttpContext.Current对象

#12


我也碰到过,后来用了其他方法,看看高手有什么好办法,帮楼主顶

#13


应用程序物理路径 HttpContext.Current.Request.PhysicalApplicationPath

#14


xiaotupansy(分基本靠接)

没有显示就添加System.Web的引用啊,这个不用我教吧...

========================================

using System.Web也没用,它跟直接输入System.Web.的效果是一样的

#15


shuen(ShiningStone)

应用程序物理路径 HttpContext.Current.Request.PhysicalApplicationPath

===============================

这个也是同样不行的

#16


是要添加对System.Web这个DLL文件应用。

右键你的project- add reference - 选择System.web 点击OK,然后用上面的代码

#17


BearRui(孤熊 | 带你去看海!)

是要添加对System.Web这个DLL文件应用。

右键你的project- add reference - 选择System.web 点击OK,然后用上面的代码

======================================

兄弟,真是谢谢您了,我的问题解决了,我也觉得应该要添加一个这样的DLL引用的

除了可以用System.Web.HttpContext.Current.Server.MapPath()外,我试了一下还可以用

new System.Web.UI.Page().Server.MapPath(),或者传入一个参数(System.Web.UI.Page page),

然后再用page.Server.MapPath()

谢谢各位了!!!

#18


行了就好,^_^

#19


一群人题目都没看懂  

#1


System.Web.HttpContext.Current.Server.MapPath

#2


可以用MapPath()

用System.Web.HttpContext.Current.Server.MapPath()就OK了

#3


风过无痕

#4


System.Web.HttpContext.Current.Server.MapPath()
正确

#5


System.Web.HttpContext.Current.Server.MapPath("");

#6


同上

#7


我是搂猪
在代码后置的.aspx.cs文件中可以用System.Web.HttpContext.Current.Server.MapPath(),但在类库项目文件中输到"System.Web."后只出来AspNetHostingPermission、AspNetHostingPermissionAttribute、AspNetHostingPermissionLevel三项,没有HttpContext的,请高手再具体说明一下,谢谢!!!

#8


不可能啊,我都是在类库中用这个的啊。

你直接copy进去,看编译有没有问题

#9


BearRui(孤熊 | 带你去看海!)

不可能啊,我都是在类库中用这个的啊。

你直接copy进去,看编译有没有问题

=====================================

兄弟,真的可以吗?编译报错了:

错误 CS0234: 命名空间“System.Web”中不存在类型或命名空间名称“HttpContext”(是缺少程序集引用吗?)

还需要 using 什么吗?

#10


没有显示就添加System.Web的引用啊,这个不用我教吧...

#11


只要你的web请求不是异步执行的 就可以那么用 要是异步执行那就要自己保留哪个System.Web.HttpContext.Current对象

#12


我也碰到过,后来用了其他方法,看看高手有什么好办法,帮楼主顶

#13


应用程序物理路径 HttpContext.Current.Request.PhysicalApplicationPath

#14


xiaotupansy(分基本靠接)

没有显示就添加System.Web的引用啊,这个不用我教吧...

========================================

using System.Web也没用,它跟直接输入System.Web.的效果是一样的

#15


shuen(ShiningStone)

应用程序物理路径 HttpContext.Current.Request.PhysicalApplicationPath

===============================

这个也是同样不行的

#16


是要添加对System.Web这个DLL文件应用。

右键你的project- add reference - 选择System.web 点击OK,然后用上面的代码

#17


BearRui(孤熊 | 带你去看海!)

是要添加对System.Web这个DLL文件应用。

右键你的project- add reference - 选择System.web 点击OK,然后用上面的代码

======================================

兄弟,真是谢谢您了,我的问题解决了,我也觉得应该要添加一个这样的DLL引用的

除了可以用System.Web.HttpContext.Current.Server.MapPath()外,我试了一下还可以用

new System.Web.UI.Page().Server.MapPath(),或者传入一个参数(System.Web.UI.Page page),

然后再用page.Server.MapPath()

谢谢各位了!!!

#18


行了就好,^_^

#19


一群人题目都没看懂  

#20