Server.MapPath를 사용할 수 없습니다.


111

일을하려면 어떻게해야합니까 Server.MapPath?
나는 가지고있다using System.Web;

또 뭐야? 입력 할 때 Server.NET에 대한 빠른 결과 옵션 (지능형)이 없습니다 Server.

도움이 필요하세요?


1
더 많은 정보를 제공해야합니다. 이것은 어떤 종류의 프로젝트입니까? Server.MapPath를 실행하려는 이유는 무엇입니까? 이것은 웹 양식 프로젝트이며 Page 하위 클래스 또는 ASPX의 렌더링 기능에 코드를 작성하고 있습니까?
Dai

C # 윈폼은 .. 내가 그것을 서버에 파일 유무를 확인하려면
a1204773

답변:


286

이것을 사용해 볼 수 있습니다

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

또는 사용 HostingEnvironment.MapPath

    System.Web.Hosting.HostingEnvironment.MapPath(path);

1
작동하지 않습니다 .... 오류 1 'System.Web'네임 스페이스에 'HttpContext'형식 또는 네임 스페이스 이름이 없습니다 (어셈블리 참조가 누락 되었습니까?) ... 오류 2 형식 또는 네임 스페이스 이름 'Hosting' 네임 스페이스 'System.Web'에 존재하지 않습니다
a1204773

winforms를 사용하는 것 같습니다.이 링크를
확인한

4
저도 HostingEnvironment.MapPath가 작동했으며 컨트롤러 외부에서 사용하고 있습니다.
누가 복음

우선 프로젝트의 요구를 System.Web.dll을 참조하고 그것은 작동합니다
ihebiheb

"~ / AppData / Roaming"디렉토리에있는 파일을 읽는 방법은 무엇입니까?
Murlidhar Fichadia

14

프로젝트에서 어셈블리를 참조해야합니다 System.Web.dll. 서버는 유형의 개체입니다 HttpServerUtility. 예:

HttpContext.Current.Server.MapPath(path);

3
그런 참조를 찾을 수 없습니다. System.Web.ApplicationServices, System.Web.Services ....
a1204773

4

System.Web.HttpContext.Current.Server.MapPath("~/") 스레드에서 호출하면 null을 제공합니다.

그래서 사용해보십시오

System.Web.Hosting.HostingEnvironment.MapPath("~/")


1

없는 경우 Firt에 대한 참조를 추가하십시오 System.web. References 폴더 에서 수행하십시오 .

그런 다음 사용할 수 있습니다. Hosting.HostingEnvironment.MapPath(path);


1
bool IsExist = System.IO.Directory.Exists(HttpContext.Current.Server.MapPath("/UploadedFiles/"));
if (!IsExist)
    System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath("/UploadedFiles/"));

StreamWriter textWriter = File.CreateText(Path.Combine(HttpContext.Current.Server.MapPath("/UploadedFiles/") + "FileName.csv"));
var csvWriter = new CsvWriter(textWriter, System.Globalization.CultureInfo.CurrentCulture);
csvWriter.WriteRecords(classVM);

코드 전용 답변은 품질이 낮은 것으로 간주됩니다. 코드가 수행하는 작업과 문제를 해결하는 방법에 대한 설명을 제공해야합니다. 게시물에 더 많은 정보를 추가 할 수 있다면 질문자와 미래 독자 모두에게 도움이 될 것입니다. 참조 전체 코드 기반의 답변을 설명하면서
Calos

0

System.Web프로젝트에 대한 참조로 추가해보십시오 .



0

이 게시물이 몇 년 전이라는 것을 알고 있지만 제가하는 일은이 줄을 수업 맨 위에 추가하는 것입니다. 그러면 여전히 Server.MapPath를 사용할 수 있습니다.

Dim Server = HttpContext.Current.Server

또는 u는 함수를 만들 수 있습니다

Public Function MapPath(sPath as String)
    return HttpContext.Current.Server.MapPath(sPath)
End Function

나는 일을 더 쉽게 만드는 것입니다. 나는 또한 이것을 다시 실행할 경우를 대비하여 유틸리티 클래스에 추가했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.