
現在Visual Studio 6.0 Professional Editionを使って開発をしています。
その中でiniファイルを使う部分があるのですが、
現在はiniファイルまでのフルパスを直書きしています。
しかし、そのパスを動的に取得したいのです。
イメージ↓
フォルダA
| Liniファイル ←☆の位置からこのパスを取得したい
|
フォルダB
LEXE☆ ←ここから
まだまだ技術的な力が足りず、どうしたらいいのかさっぱりわかりません。
そこで皆さんの知恵を借りたいのです。
よろしくお願いします。
サンプルでもサイトでもなんでも構いません。
No.2ベストアンサー
- 回答日時:
考え方なので、理解してデバッグして下さい。
EXEのあるフォルダの隣にあるフォルダAにINIファイルがあるという前提です。
#include <windows.h>
#include <stdlib.h>
char szBuf[_MAX_PATH];
char szDrive[_MAX_DRIVE];
char szDir[_MAX_PATH];
GetModuleFileName( NULL, szBuf, _MAX_PATH );
_splitpath( szBuf, szDrive, szDir, NULL, NULL );
sprintf( szBuf, "%s%s%s", szDrive, szDir, "..\\フォルダA\\iniファイル名");
szBufに絶対パスが入る。
sprintf( szBuf, "%s%s%s", szDrive, szDir, "\\..\\フォルダA\\iniファイル名");
かもしれません。szBufを表示して確認要!
GetModuleFileName()は、実行ファイルのフルパス名とファイル名を取得します。
No.5
- 回答日時:
相対パスでの指定の際には…
「カレントディレクトリ」に注意してください。
exeファイルのある場所がカレントディレクトリとは限りませんので。
#2さんの書かれているGetModuleFileName()を使用しての絶対パスでの指定がベストだと思います。
No.4
- 回答日時:
環境変数にiniファイルの位置を記述しておくのは?
環境変数
INIDIR=C:\フォルダA
#include <stdlib.h>
char *env;
env = getenv("INIDIR");
No.3
- 回答日時:
★相対パスでの指定ではダメなの?
・フルパス名が長いのなら相対パスで指定すればよいのでは。
イメージが良く読み取れませんが
◆フォルダA
├─iniファイル
└フォルダB
└exeファイル
↑
ならば『..\\filename.ini』とすればいい。
・もし下のイメージなら
◆フォルダA
│ └iniファイル
└フォルダB
└exeファイル
↑
ならば『..\\フォルダA\\filename.ini』となります。
・相対パスでも処理できると思いますのでフルパスに直さず試して見て下さい。
・以上。
No.1
- 回答日時:
一般にWindowsOSにファイルのパスを自動で取得する方法はありません。
iniファイルを必ず、アプリの起動ディレクトリあるいは、パスの通った場所に置くことにするか、インストーラで置いてあるフォルダをレジストリに書き込むようにするといいでしょう。
最もレジストリ構うなら、最初からiniファイルでなくレジストリでよいのではという話もあるでしょうが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どんなプログラムを書いても指...
-
フルパスから最後のディレクト...
-
FTPでputすると空ファイルが出...
-
ExcelVBAでカレントディレクト...
-
ファイルやディレクトリの存在...
-
ファイルのパスを動的に取得
-
絶対パスの絶対て英語で何でし...
-
Ubuntu テキストファイルをどこ...
-
C言語でファイルを読み込みたい
-
ネットワーク上のコンピュータ...
-
windows.hがincludeされない
-
ディレクトリ/ファイル リスト...
-
ExcelVBA サーバーの(共有フォ...
-
「UNCパスはサポートされません...
-
C++BuilderにてEFCreateErrorが...
-
Access クエリ実行が急に非常に...
-
C言語初心者の質問失礼します。
-
ファイル名の先頭にアンダース...
-
バッファとは何ですか
-
Acccess レポートをグループ別...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どんなプログラムを書いても指...
-
FTPでputすると空ファイルが出...
-
フルパスから最後のディレクト...
-
fopenで別ディレクトリにファイ...
-
「UNCパスはサポートされません...
-
webアプリケーションでの画像フ...
-
絶対パスの絶対て英語で何でし...
-
ExcelVBAでカレントディレクト...
-
windows.hがincludeされない
-
ExcelVBA サーバーの(共有フォ...
-
ファイルやディレクトリの存在...
-
セルに入力されたパスでフォル...
-
C言語を用いたファイルの一括削...
-
ネットワーク上のコンピュータ...
-
Ubuntu テキストファイルをどこ...
-
GIFファイルを一括してWORDに挿...
-
GetPrivateProfileStringでini...
-
Excelマクロからのバイナリデー...
-
FindFirstFileについて
-
圧縮(Zip)について
おすすめ情報