ファイルを作成する場所を相対的に指定したい

[戻る]
ディレクトリ 2002/12/17(火) 10:43:15
こんにちは。

いまファイルを作成するとき
fopen("テスト.csv","w");
という感じで作成しているのですがこれだと実行ファイルと同じ階層に作成されてしま
います。

たとえば実行ファイルが
「C:\program1\aaa.exe」にあったとして上の式だと
「C:\program1\aaa.csv」が作成されますが
これを「C:\program1\file\aaa.csv」としたいのです。

C:\program1は任意なのでaaa.exeから相対的に呼び出される方法が知りたいです。
またfileフォルダが無い場合は作成して入れたいのです。

初歩的な質問かもしれませんがよろしくお願い致します。

sugar 2002/12/17(火) 11:02:44
".\\file\\aaa.csv"をfopenすればよいはずです。
ただし、カレントディレクトリが"C:\\program1"であること。

"file"フォルダの存在は、事前に存在チェックをすることになるのかな・・・?

ディレクトリ 2002/12/17(火) 11:16:31
ありがとうございます!
親ディレクトリはなんとなく\\だとは思っていて
"\\file\\aaa.csv"を試していたんですが「.」が必要だったのですね・・・

フォルダが無い場合はやはりチェックして作成する必要があるようです。

ディレクトリ 2002/12/17(火) 11:20:20
[[解決]]
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200004/00040003.txt

を参考に無かったらクリエイトディレクトリすることにしました。

ディレクトリ 2002/12/17(火) 11:39:56
[[解決]]
やっぱり、ディレクトリの有無を関係無しに_mkdirしてしまえば
問題ないことに気づきました。ありがとうございました。

YuO [E-Mail] 2002/12/17(火) 12:22:11
> ".\\file\\aaa.csv"をfopenすればよいはずです。

カレントディレクトリからの相対ですから,.\は不要ですね。
"file\\aaa.csv"
で開けますよ。

> 親ディレクトリはなんとなく\\だとは思っていて

親ディレクトリは..です。
カレントディレクトリが.で,
最初に\があるとカレントドライブルートディレクトリです。

古いスレッドには追加発言できません。