- - PR -
相対パスの指定について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-02-12 17:35
C#で、Windowsプログラムを作成中です。
oleDbAdapterを利用しデータベースと接続しています。 絶対パスなため、当然ながらフォルダを移動すれば接続できなくなり、すごく不便です。他の人のパソコン内でも利用する必要があります。 C:\Documents and Settings\C#初心者\デスクトップ\新システム\DB\データベース.mdb と指定しています。 初歩的ですみませんが、相対パスでの接続の仕方を教えてください。お願いします。 | ||||
|
投稿日時: 2006-02-12 17:40
お世話になります。
マイ ドキュメント なら、System.Environment.SpecialFolder.Personal でいけると思いますが。 Environment.SpecialFolder 列挙体 | ||||
|
投稿日時: 2006-02-12 17:49
なんか、
> C:\Documents and Settings\C#初心者\デスクトップ\新システム\DB\データベース.mdb は共有フォルダ配下であって、自分のPCからはそのパスでよいけど、 他人のPCからはネットワークパスになるからというとこでしょうか? 同じ exe をつかっていないのならば、mdb の位置を指定させるしかないですね。 (よくあるツールの 実行ファイルのパス を入力させるヤツみたいなの) それか、設定用のXMLファイル(iniファイルでも良いが)を個人個人で用意させて、 それの情報から mdb の位置を決定するとか。 同じ exe(共有フォルダ上のexe)を複数人が使っているのならば、その exe と mdb との パス関係で 相対パスにするしかないですね。 (こちらの場合は exe の位置がわからないので解答できないかと、) [ メッセージ編集済み 編集者: Blue 編集日時 2006-02-12 17:57 ] | ||||
|
投稿日時: 2006-02-12 18:22
ユーザー単位で設定するものであれば、各ユーザーの Application Data。
アプリケーション全体であれば、実行されるディレクトリと同位置かそれより下の階層。 特に理由がなければ、.NET 的にはこれが普通だと思います。 今回は DB なので外部ファイル依存にする必要もないと思います。 # My Documents などは NG かな。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-02-12 18:53
Application グローバル変数に、ApplicationData だったか、アプリケーション用のデータを入れるためのパスをとるプロパティがあります。システムドライブの、Documents and Settings/ユーザ名/ApplicationData/会社名/アセンブリ名/バージョン番号 がとれます。アセンブリ名じゃなく、アセンブリ属性で指定したプロダクト名だったかも。
ApplicationData は、hidden 属性がついています。 〆 written by Jitta on 2006/02/12 | ||||
|
投稿日時: 2006-02-12 19:39
説明が悪くてすみません。
つまり、ソース、exe、mdbが入っている、「新システム」フォルダがあります。 このフォルダを、相手のパソコンに移すだけで利用できるようにしたいと思っています。 作品提出みたいな感じだと思っていただければいいと思います。よろしくお願いします。 | ||||
|
投稿日時: 2006-02-12 19:55
Application.UserAppDataPath かな でもこれ普通にインテリセンスにでてきますね 似たようなのに Application.CommonAppDataPath っていうのもありますね こっちだと各ユーザでなくAllUsersになります | ||||
|
投稿日時: 2006-02-12 20:03
System.Windows.Forms.Application クラスのメンバを調べるとそれらしいものがあると思います。 |