从App_Code文件夹中的类访问App_Data中的文件

Bri*_*ian 11 asp.net

在ASP.Net中有app_data文件夹,用户无法通过网络访问该文件夹.我想在此文件夹中存储一个文件,并使用App_Code文件夹中的类从该文件中读取.

请记住,此处的当前工作目录将是一个目录,例如"c:\","c:\ windows\system32 \"等,而不是应用程序目录.所以像"../App_Data/somefile"这样的东西不起作用.

必须有一些简单的东西,我忽略了如何以编程方式访问App_Data文件夹中的文件

我怎样才能做到这一点?

Cra*_*gTP 20

您可以像这样访问App_Data文件夹:

string appdatafolder = Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "App_Data");
Run Code Online (Sandbox Code Playgroud)

我意识到这会使用HttpContext对象,但是,如果您在自定义ASP.NET成员资格提供程序中编写此代码(我自己已多次执行此操作),则使用HttpContext对象应该没有问题.

  • 谢谢,这让我开始正确,我去了HttpContext.Current.Server.MapPath("〜/ App_Data/myfilenamehere")方法,因为它似乎更具可读性. (4认同)

Ant*_*nes 7

你说你无法访问上下文对象,但目前还不清楚为什么会这样.

如果您的代码运行以响应请求,那么您可以访问上下文: -

HttpContext.Current
Run Code Online (Sandbox Code Playgroud)

如果失败,您可以使用以下方法访问应用程序的根物理路径: -

HttpRuntime.AppDomainAppPath
Run Code Online (Sandbox Code Playgroud)