この記事では、C言語でファイル名を変更する方法と、その応用例について説明します。
ファイル名の変更に必要なヘッダーファイルのインクルード方法や、ファイルの拡張子の変更、ファイル名の一部の置換など、具体的なコード例を通じて理解していきましょう。
初心者の方でもわかりやすく解説していますので、ぜひ参考にしてください。
C言語でのファイル名の変更方法
ファイル名を変更する方法について説明します。
ファイル名の変更に必要なヘッダーファイルのインクルード
ファイル名を変更するためには、stdio.hヘッダーファイル
をインクルードする必要があります。
stdio.hヘッダーファイル
には、ファイル操作に関連する関数や定数が定義されています。
#include <stdio.h>
ファイル名の変更
ファイル名を変更するには、rename関数
を使用します。
rename関数
は、指定したファイルの名前を変更するための関数です。
int rename(const char *oldname, const char *newname);
rename関数
には、変更前のファイル名と変更後のファイル名を引数として渡します。
引数の型は、const char *
です。
以下に、ファイル名を変更するサンプルコードを示します。
#include <stdio.h>
int main() {
const char *oldname = "oldfile.txt";
const char *newname = "newfile.txt";
if (rename(oldname, newname) == 0) {
printf("ファイル名を変更しました。\n");
} else {
printf("ファイル名の変更に失敗しました。\n");
}
return 0;
}
上記のコードでは、oldfile.txt
という名前のファイルをnewfile.txt
という名前に変更しています。
rename関数
の戻り値が0の場合は、ファイル名の変更に成功したことを示します。
戻り値が0以外の場合は、ファイル名の変更に失敗したことを示します。
実行結果は以下のようになります。
ファイル名を変更しました。
以上がC言語でファイル名を変更する方法の説明です。
rename関数
を使用することで、簡単にファイル名の変更ができます。
ファイルの拡張子だけ変更してみる
ファイルの拡張子を変更する場合は、元のファイル名から拡張子を取り除き、新しい拡張子に変更することも可能です。
以下に、C言語でファイルの拡張子を変更するサンプルコードを示します。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char oldFileName[BUFSIZ] = "sample.txt";
char newFileName[BUFSIZ] = "";
// 拡張子を変更するために、元のファイル名から拡張子を取り除く
char *dot = strrchr(oldFileName, '.');
char *ext = dot + 1;
if (dot != NULL) {
*dot = '\0';
}
// 新しい拡張子に変更する
sprintf(newFileName,"%s.%s", oldFileName, "csv");
//元のファイル名を元に戻す
sprintf(oldFileName,"%s.%s", oldFileName, ext);
// ファイル名を変更する
if (rename(oldFileName, newFileName) == 0) {
printf("ファイル名を変更しました。\n");
} else {
printf("ファイル名の変更に失敗しました。\n");
}
return 0;
}
上記のコードでは、元のファイル名と新しいファイル名を指定しています。
まず、元のファイル名から拡張子を取り除くために、strrchr関数
を使用して最後のドットの位置を検索し、その位置以降を終端文字に置き換えます。
次に、sprintf関数
を使用して新しい拡張子を追加したファイル名を生成します。
最後に、rename関数
を使用してファイル名を変更します。