C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 91 を表示中)
■54637 / )  Re[4]: デバック時とブラウザ時のカレントディレクトリの相違について
□投稿者/ TAMA (14回)-(2010/10/28(Thu) 09:15:44)
No54626 (ちゃっぴ さん) に返信
> ~ を使いましょう。Application の root がとれます。
>
> strData = Sever.MapPath("~/data/");

ご回答ありがとうございます。
先に「利用しなくてもできるのでやりたいことを書きましょう。」とご指摘いただいたのに、
やりたい事を明確に伝えておらず、余計な回答の手間を取らせてしまいました。
申し訳ありませんでした。

困っている点は具体的には以下の2点です。

@ファイルの作成・削除
「using System.IO;」で以下のように
  var fsHinagataExcel = new FileStream(strDataDir + strFileName, FileMode.Open, FileAccess.ReadWrite);
エクセルの読み込み、作成、削除をしており、
ここの部分のパスの取得で、「Sever.MapPath("~/data/");」とすると
うまくエクセルまでのパスが取得できず、前述のように

============================
string strDataDir;
if (System.Text.RegularExpressions.Regex.Match(Request.Url.ToString(), "localhost").Success == true)
{
strDataDir = Server.MapPath("/data/");
}
else
{
strDataDir = Server.MapPath("/aaa/data/");
}
===========================
にて絶対パスを設定している次第です。
やりたいことはここで、デバック時とブラウザ時で処理を分けなくてもよい方法を模索しています。

AJavaScriptファイルの読み込み
マスターページを使用しており、マスターページの<head>に以下のように
共通使用するJavaScriptを読み込んでいます。

<script type="text/javascript" src="/scripts/common.js"></script>
※上記はデバック時はうまくいきます。
※ブラウザでは以下のようにしないとJavaScriptを読み込めません。
<script type="text/javascript" src="/aaa/scripts/common.js"></script>

マスターページはいろいろな階層に配置されたaspxファイルで読み込まれるため、
絶対パスで指定しないとうまくいかないかと思っており、
また<script>タグの内容をプログラムで動的に変更することも出来ないため、
@のような代替案も思いつかず、非常に困っています。

以上、長文となってしまいましたが、何卒ご回答の程よろしくお願いいたします。
返信 編集キー/


管理者用

- Child Tree -