2012-03-09 20 views
2

こんにちは、みんな私はc#mvc3を使用してフォルダを作成しようとしています。私のコントローラに次のコードがありますc#.netを使用して相対フォルダを作成する

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

ただし、フォルダを作成していないようです。私は、相対パスせずにディレクトリを使用してみましたが、それは

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

の作品コントローラ外部の場合(Server.MapPathの(コントローラである場合)またはSystem.Web.Hosting.HostingEnvironment.MapPathを試してみてください、あなたに

+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

ありがとうございました)最初のコンテンツには、物理​​パスへの仮想リソースパスをマッピングし、 ので:

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

そして、ディレクトリを作成します。

+0

トリックtnxを行った –

2

あなたが持っている有効なパスではないことを指摘しているので、このinsteedを試してみてください。

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

Directory.CreateDirectory(path); 
関連する問題