답변:
ServerUtility
클래스는의 인스턴스로 사용할 수 있습니다 HttpContext
. ASP.Net 파이프 라인 내에서 실행된다는 것을 알고있는 환경에 있다면
HttpContext.Current.Server.MapPath()
System.Web
그래도 가져와야 합니다.
당신은 단지에 대한 참조를 추가 할 수 없습니다 System.Web
그리고 당신은 사용할 수 있습니다 Server.MapPath
?
편집 : 요즘에는 HostingEnvironment.MapPath
방법을 사용하는 것이 좋습니다 .
System.Web
가상 경로를 서버의 실제 경로에 매핑하는 어셈블리 의 정적 메서드입니다 . 에 대한 참조가 필요 하지 않습니다HttpContext
.
System.Reflection.Assembly.GetAssembly(type).Location
가져 오려는 파일이 유형의 어셈블리 위치 인 경우 그러나 파일이 어셈블리 위치를 기준으로하는 경우 System.IO
네임 스페이스 와 함께 사용 하여 파일의 정확한 경로를 얻을 수 있습니다.
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);
}
이 방법으로 코드는 간단하며 하나의 방법으로 각 호출에 대해 여러 경로를 사용할 수 있습니다. :)
이것은 나를 위해 도움이
//System.Web.HttpContext.Current.Server.MapPath //
FileStream fileStream = new FileStream(System.Web.HttpContext.Current.Server.MapPath("~/File.txt"),
FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);