【C言語】ファイルの名前を変更する方法を解説

この記事では、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関数を使用してファイル名を変更します。

目次から探す