[英]How to extract name/data from database and use it as my folder name which is created dynamically in asp.net c# using server.MapPath()?
[英]Using Server.MapPath in external C# Classes in ASP.NET
我試圖獲取C#類中某些文件的絕對路徑。 Server.MapPath
當然適用於ASPX及其代碼隱藏頁面,但在另一個類文件中不存在。 我嘗試了HostingEnvironment.MapPath()
,但是抱怨不允許相對虛擬路徑。 有什么想法嗎?
System.Web
已導入。
ServerUtility
類可用作HttpContext
的實例。 如果你所處的環境中你知道它將在ASP.Net管道中執行,你可以使用
HttpContext.Current.Server.MapPath()
您必須導入System.Web
。
你也可以用:
var path = System.Web.Hosting.HostingEnvironment.MapPath("~/App_Data/myfile.txt")
如果
var path = Server.MapPath("~/App_Data");
var fullpath = Path.Combine(path , "myfile.txt");
無法進入
你不能只是添加對System.Web
的引用,然后你可以使用Server.MapPath
?
編輯:現在我建議使用HostingEnvironment.MapPath
方法 :
它是System.Web
程序集中的靜態方法,它將虛擬路徑映射到服務器上的物理路徑。 它不需要一個參考HttpContext
。
System.Reflection.Assembly.GetAssembly(type).Location
如果您要獲取的文件是類型的裝配位置。 但是,如果文件相對於程序集位置,則可以將其與System.IO
命名空間一起使用以獲取文件的確切路徑。
我也用它:
System.Web.HTTPContext.Current.Server.MapPath
這對我有幫助
//System.Web.HttpContext.Current.Server.MapPath //
FileStream fileStream = new FileStream(System.Web.HttpContext.Current.Server.MapPath("~/File.txt"),
FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
class test
{
public static void useServerPath(string path)
{
if (File.Exists(path)
{
\\...... do whatever you wabt
}
else
{
\\.....
}
}
現在當你從代碼隱藏中調用方法時
例如 :
protected void BtAtualizacao_Click(object sender, EventArgs e)
{
string path = Server.MapPath("Folder") + "\\anifile.txt";
test.useServerPath(path);
}
通過這種方式你的代碼很簡單,一個方法你可以為每個調用使用多個路徑:)
無論您是否在ASP.NET的上下文中運行,您都應該能夠使用HostingEnvironment.ApplicationPhysicalPath
server.mappath(“”)將在aspx頁面上工作,如果你想從類文件中獲取絕對路徑,你必須使用這個 -
HttpContext.Current.Server.MapPath("~/EmailLogic/RegistrationTemplate.html")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.