2009-06-03 22 views
0

ASP.Net Webサイトのサブディレクトリを検索するにはどうすればよいですか?ASP.Net検索サブディレクトリ

私は、これは通常のWinフォームプロジェクトだった場合、私は簡単に従うことによってそれを得ることができる知っている:そして

Environment.CurrentDirectory 

または

System.IO.Directory.GetCurrentDirectory() 

string[] directories = System.IO.Path.Combine(Environment.CurrentDirectory, "Portfolio") 

私はどのように構築しますかASP.NetのPortfolioというサブフォルダへのパス?

http://??????????/Portfolioからすべてを構築する際に問題が発生しています。私はどのように??????を見つけるのですか?部?

私はそれを別のサーバーに異なるものになるので、私はその最後のサブフォルダ前にハードコードすべてにしたくない

...上記のコードを試してみましたが、完全に別のディレクトリを得ました。

答えて

2

Directory.GetCurrentDirectory()を呼び出すと、ASP.NETアプリケーションからそれを呼び出すときに誤解を招くことができます。これを回避する最善の方法は、代わりにServer.MapPath()を使用することです。これにより、Webフォルダをディスク上のその場所にマップすることができます。

したがって、例えば、このコード実行:

string path = Server.MapPath("~/Portfolio"); 

する「path」ディスク上のそのフォルダの場所に等しく設定されます。

Pageまたはコントロールクラスのコンテキスト外でこのコードを実行している場合は、Serverオブジェクトに直接アクセスすることはできません。この場合、あなたのコードは次のようになります。

string path = HttpContext.Current.Server.MapPath("~/Portfolio"); 
0

私は右のあなたを理解していれば、あなただけでそれにアクセスすることができます。

"/portfolio" 

例えばそれは「http://site.comは」あなたが」http://site.com/portfolioを取得しますで、場合、システムは、URLに「/ポートフォリオ」を連結しますあなたは物理的なパスをしたい場合は、「

、あなたは

server.mappath("/portfolio") 

を使用することができ、それが受験のために(関連する物理ディレクトリを返します。 PLE E:\サイト\サイト\ポートフォリオ」)

0

ラインの以下の部分は、あなたが「ビン」ディレクトリに

Assembly asm = Assembly.GetExecutingAssembly(); 
String strAppHome = Path.GetDirectoryName(asm.CodeBase).Replace("file:\\", ""); 
を取得します
関連する問題