2012-03-09 2 views
2

안녕하세요 여러분, C# mvc3을 사용하여 폴더를 만들려고합니다. 내 컨트롤러에 다음 코드가 있습니다.C# .net을 사용하여 상대 폴더 만들기

string path = Path.Combine("~/Content/albums", album.title.Replace(" ", "")); 
Directory.CreateDirectory(path); 

그러나 폴더를 만드는 것 같지 않습니다. 나는 상대 경로없이 디렉토리를 사용하여 시도하고 그것은 컨트롤러 외부 경우

Directory.CreateDirectory("c:/test"); 

이 (

+0

시도 할 때 내부 경로는 무엇입니까? –

+0

디렉터리에 읽고 쓸 수 있도록 ASP.Net 응용 프로그램에 대해 적절한 사용 권한을 할당해야합니다. 두 번째로 HttpServerUtility.MapPath를보고 애플리케이션 경로를 찾습니다. http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspx – Lloyd

+0

hmm "~/Content/albums \\ gone"사라진 앨범의 제목 @ SimonEdström –

답변

7

이 (컨트롤러의 경우)는 Server.MapPath를 시도하거나 System.Web.Hosting.HostingEnvironment.MapPath 감사 작동

string contentPath = Server.MapPath("~/Content/albums"); 
string path = Path.Combine(contentPath, album.title.Replace(" ", "")); 

을 그리고 디렉토리를 생성합니다) 먼저 내용에, 그렇게 실제 경로, 에 가상 자원 경로를 매핑합니다.

+0

그 트릭 tnx 않았다 –

2

올바른 경로가 아니라는 점을 지적하면서이 인 시드를 시도하십시오.

string physicalPath = Server.MapPath("~/Content/albums"); 
string path = Path.Combine(physicalPath , album.title.Replace(" ", "")); 

Directory.CreateDirectory(path); 
관련 문제