プロが教える店舗&オフィスのセキュリティ対策術

 C言語でデータの種類ごとにディレクトリーを用意し、データを振り分けたいのですが。。
 fopenすると同じディレクトリーでしかファイルを呼び出したり、保存したりしかできないですよね。ちがうディレクトリーのファイルの呼び出し、ファイルの保存は出来ないでしょうか?また、ディレクトリーの作成なんてことは、C言語ではできないでしょうか?
 誰か知っている人がいましたら、よろしくお願いします。

A 回答 (2件)

ディレクトリの作成は「_mkdir」と言う関数が用意されています。


Cのヘルプで「_mkdir」をキーワードに検索してみて下さい。

fopenは同じディレクトリでしか操作できない
・・・と言うのがちょっと分からないんですが、
fopen("dir1\\file.txt", "w")とすれば、
exeファイルと同じディレクトリに存在する「dir1」フォルダの中に
「file.txt」と言う名前のファイルを作成します。
また、fopen("../data.dat", "w")とすれば、
exeファイルの一つ上のディレクトリに
「data.dat」と言う名前のファイルを作成します。

もちろん、絶対パスを使う事も出来ます。
例)fopen("C:\\dir1\\dir2\\sample.ini", "w")

質問の回答になっているかどうか分かりませんが、
こんなのでどうでしょう?
    • good
    • 0
この回答へのお礼

>また、fopen("../data.dat", "w")とすれば、
exeファイルの一つ上のディレクトリに
「data.dat」と言う名前のファイルを作成します。

もちろん、絶対パスを使う事も出来ます。
例)fopen("C:\\dir1\\dir2\\sample.ini", "w")

こういう使い方を知らなかったので。。
非常に助かります。ありがとうございました。

お礼日時:2001/07/27 10:50

sueokaさんの回答のとおりですが、一応、UNIX版だと以下のとおりです。



「ディレクトリ作成」
mkdir("作りたいディレクトリ名");

「ファイルオープン」
FILE fp;
fp = fopen("ファイル名","r"); /* 読み込みの場合 */

質問内容を見ますと、絶対パス、相対パスをよく理解されていないのでは?と思いました。念のため書いておきます。

●絶対パス:ディレクトリの先頭(UNIXならルート、Windowsならドライブ)から最後まで全部書く方法

●相対パス:実行ファイルと同じディレクトリを基準にする方法(正確にはカレントディレクトリを基準にします。カレントは変更可能)。1つ上のディレクトリを示すには、 ../ と書きます。
例)実行ファイルの1つ上のabcというディレクトリのdef.txtを追加モードでオープンする。
fp = fopen("../abc/def.txt","a");

補足は以上です。がんばってください!
    • good
    • 0
この回答へのお礼

 >fp = fopen("ファイル名","r"); /* 読み込みの場合 */
ファイル名のところは、ファイル名しか入れられないのかと思っていたので、
>fp = fopen("../abc/def.txt","a");
このような使い方ができるとは知りませんでした。
ありがとうございました。ポイントはどちらにも、多くやりたいのですが、そうもいかないので、早いもの順ってことで。ありがとうございました。

お礼日時:2001/07/27 10:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!