- PR -

DLLの実行時のフォルダ

投稿者投稿内容
頭脳パン
ベテラン
会議室デビュー日: 2003/04/03
投稿数: 89
投稿日時: 2006-08-22 19:36
コンソールアプリと、Webアプリから使用されるクラスライブラリ(DLL)
を作成しています。

このDLLから設定ファイルを読み込もうと思い
このDLLの実行時のフォルダを取得しようとおもいます。
(設定ファイルは、DLLと同じ場所に配置しようと思っています)

以下だとDLLのフルパス(DLLのファイル名付)が取得できてしまいます。

System.Reflection.Assembly.GetExecutingAssembly().CodeBase

この取得した文字列を編集して実行時のフォルダを取得するしかないものでしょうか。

環境はVisualStduio2005です。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-22 19:54
引用:

頭脳パンさんの書き込み (2006-08-22 19:36) より:

以下だとDLLのフルパス(DLLのファイル名付)が取得できてしまいます。
System.Reflection.Assembly.GetExecutingAssembly().CodeBase


できてしまえてまずいのでしょうか?
シャドウ コピーされる以上、CodeBase プロパティを使うしかないと思うのですが...

  DLL での実行パス取得方法

# 2.0 だと URI 表記以外で取れたりするのかな...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
頭脳パン
ベテラン
会議室デビュー日: 2003/04/03
投稿数: 89
投稿日時: 2006-08-23 08:47
書き方が悪かったですね。
欲しいのは、DLLが動作しているフォルダなんですよね。
どうせなら、フォルダ取得と、ファイル名取得の両方を
用意してくれればいいのにと思ったわけです。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-23 08:53
引用:

頭脳パンさんの書き込み (2006-08-23 08:47) より:

欲しいのは、DLLが動作しているフォルダなんですよね。
どうせなら、フォルダ取得と、ファイル名取得の両方を
用意してくれればいいのにと思ったわけです。


そういうメソッドを用意してあげれば良いと思います。
ディレクトリまでのパスは、System.IO.Path.GetDirectoryName メソッド で簡単に取得できます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
頭脳パン
ベテラン
会議室デビュー日: 2003/04/03
投稿数: 89
投稿日時: 2006-08-23 09:28
>ディレクトリまでのパスは、System.IO.Path.GetDirectoryName メソッド で簡単に取得>できます。
ありがとうございます。まさにこれですね。
C#で、フルパス文字列の一番右の区切りを探して、それを削除してフォルダ名を作る
なんてことはないと思ったんです。

同掲示板の教えて君スレッドが、耳が痛いです。
頭脳パン
ベテラン
会議室デビュー日: 2003/04/03
投稿数: 89
投稿日時: 2006-08-23 09:44
申し訳ないです。もう1つ知りたいのですが
Webアプリの場合の、Webのルートパスを取得する方法は
あるのでしょうか?
(教えて頂いたDLLと同じ場所だと問題がある場合に備えて知っておきたいです)
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-23 10:33
引用が前後しますが、

引用:

頭脳パンさんの書き込み (2006-08-23 09:28) より:

同掲示板の教えて君スレッドが、耳が痛いです。


多くは、何がわからないのか自分でもわからない、
自分なりに解決方法を全く図っていない、単に検索したりすることに慣れていない... などです。
いずれにしても、"どこまでどう調べているのか" 状況が書かれていないのが、共通の問題点だと思います。

たとえば、'検索することに慣れていない' 場合、
"何をどう調べたのか" が書いてあれば、的確にアドバイスができます。
これが書かれていないと 「そこはもう見ました」 など (これはほんの一例) ムダなやり取りが増えます。

1 度目ならともかく、あまり何度も続くと結果として、
「'自分の' 状況を精一杯書く '努力もしないくせに'、他人の力を借りて問題解決を図ろうとしている」
本人にそういうつもりがなくても、このような印象を与えてしまうこともあります。
悲しいですね。(ただし、これはわざと大げさに書いています)

駄文が長くなっても迷惑でしょうから、本題へ...

引用:

C#で、フルパス文字列の一番右の区切りを探して、それを削除してフォルダ名を作るなんてことはないと思ったんです。


これを、最初に書いておくと良かったですね。
閲覧者が、毎回行間を読めるとは限らないからです。

引用:

頭脳パンさんの書き込み (2006-08-23 09:44) より:

申し訳ないです。もう1つ知りたいのですが
Webアプリの場合の、Webのルートパスを取得する方法はあるのでしょうか?


これは、どのように調べたかを書いて欲しいと思います。(先に書いたとおりです)
「ASP.NET ルートパス」 で検索すればヒットするかと思いますが...

# 個人的には、スレッド タイトルが外れるので、別スレッドにした方が良いのではないかと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
頭脳パン
ベテラン
会議室デビュー日: 2003/04/03
投稿数: 89
投稿日時: 2006-08-23 10:57
>これを、最初に書いておくと良かったですね。
意図が伝わるように書けるように以後、気をつけます。

>「ASP.NET ルートパス」 で検索すればヒットするかと思いますが...
で以下のページ簡単に見つかりました。ありがとうございました。
お恥ずかしい。(この掲示板で
ルートで検索してたんですけど)
http://msdn2.microsoft.com/ja-JP/library/ms178116.aspx

スキルアップ/キャリアアップ(JOB@IT)