この記事では、C言語を使用してファイルの拡張子を変更する方法を紹介します。
具体的には、ファイル名の部分を取得し、新しい拡張子と連結してファイル名を変更する手順を解説します。
初心者の方でもわかりやすく、具体的なサンプルコードを交えて説明します。
目次から探す
ファイルの拡張子を変更する方法
ファイルの拡張子を変更する方法について説明します。
具体的な手順は以下の通りです。
ファイル名の部分を取得する
まず、ファイル名の部分を取得する必要があります。
ファイル名には拡張子が含まれているため、拡張子を除いた部分を取得する必要があります。
以下のサンプルコードでは、strrchr関数
を使用して、ファイル名の中で最後に現れるドット(.)の位置を取得しています。
その位置を基に、ファイル名の部分を抽出しています。
#include <stdio.h>
#include <string.h>
int main() {
char filename[] = "sample.txt";
char *extension = strrchr(filename, '.');
if (extension != NULL) {
// 拡張子を除いたファイル名を取得
char basename[256];
strncpy(basename, filename, extension - filename);
basename[extension - filename] = '\0';
printf("ファイル名の部分: %s\n", basename);
}
return 0;
}
上記のコードを実行すると、以下のような結果が得られます。
ファイル名の部分: sample
新しい拡張子と連結する
次に、新しい拡張子と連結します。
新しい拡張子は任意の文字列であり、元の拡張子とは異なる場合もあります。
以下のサンプルコードでは、新しい拡張子を .bak
としています。
strcat関数
を使用して、ファイル名の部分と新しい拡張子を連結しています。
#include <stdio.h>
#include <string.h>
int main() {
char filename[] = "sample.txt";
char *extension = strrchr(filename, '.');
if (extension != NULL) {
// 拡張子を除いたファイル名を取得
char basename[256];
strncpy(basename, filename, extension - filename);
basename[extension - filename] = '\0';
// 新しい拡張子と連結
char new_filename[256];
strcpy(new_filename, basename);
strcat(new_filename, ".bak");
printf("新しいファイル名: %s\n", new_filename);
}
return 0;
}
上記のコードを実行すると、以下のような結果が得られます。
新しいファイル名: sample.bak
ファイル名を変更する
最後に、ファイル名を変更します。
C言語では、ファイル名の変更には rename 関数
を使用します。
以下のサンプルコードでは、rename 関数
を使用して、元のファイル名を新しいファイル名に変更しています。
#include <stdio.h>
#include <string.h>
int main() {
char filename[] = "sample.txt";
char extension_new[] = ".bak";
char *extension = strrchr(filename, '.');
if (extension != NULL) {
// 拡張子を除いたファイル名を取得
char basename[256];
strncpy(basename, filename, extension - filename);
basename[extension - filename] = '\0';
// 新しい拡張子と連結
char new_filename[256];
strcpy(new_filename, basename);
strcat(new_filename, extension_new);
// ファイル名を変更
if (rename(filename, new_filename) == 0) {
printf("ファイル名を変更しました。\n");
} else {
printf("ファイル名の変更に失敗しました。\n");
}
}
return 0;
}
上記のコードを実行すると、以下のような結果が得られます。
ファイル名を変更しました。
以上が、ファイルの拡張子を変更する方法の手順です。
strrchr関数
を使用してファイル名の部分を取得し、strcat関数
を使用して新しい拡張子と連結します。
最後に、rename関数
を使用してファイル名を変更します。