C++ Check String File Extension

4 min read Jul 01, 2024
C++ Check String File Extension

Cara Memeriksa Ekstensi File String dalam C++

Dalam pemrograman C++, seringkali kita perlu memeriksa ekstensi file dari string yang mewakili nama file. Misalnya, kita ingin memastikan bahwa pengguna mengunggah file dengan ekstensi ".txt" atau ".csv". Berikut adalah cara untuk memeriksa ekstensi file string dalam C++:

1. Menggunakan std::string::find_last_of()

Fungsi find_last_of() dalam C++ mencari karakter terakhir yang cocok dengan string yang diberikan. Dalam hal ini, kita dapat mencari karakter titik (".") terakhir dalam nama file.

#include 
#include 

using namespace std;

int main() {
  string filename = "example.txt";
  size_t pos = filename.find_last_of('.');
  if (pos != string::npos) {
    string extension = filename.substr(pos + 1);
    cout << "Ekstensi file: " << extension << endl;
  } else {
    cout << "File tidak memiliki ekstensi." << endl;
  }
  return 0;
}

Penjelasan:

  • Kode tersebut terlebih dahulu mencari karakter titik (".") terakhir dalam nama file menggunakan find_last_of().
  • Jika karakter titik ditemukan, pos akan berisi indeks karakter titik.
  • Kemudian, substr() digunakan untuk mengambil substring mulai dari indeks setelah karakter titik hingga akhir string.
  • Substring tersebut adalah ekstensi file.

2. Menggunakan std::string::rfind()

Fungsi rfind() mirip dengan find_last_of(), tetapi memungkinkan Anda mencari substring tertentu.

#include 
#include 

using namespace std;

int main() {
  string filename = "example.txt";
  size_t pos = filename.rfind('.');
  if (pos != string::npos) {
    string extension = filename.substr(pos + 1);
    cout << "Ekstensi file: " << extension << endl;
  } else {
    cout << "File tidak memiliki ekstensi." << endl;
  }
  return 0;
}

Penjelasan:

  • Kode ini sama dengan kode sebelumnya, tetapi menggunakan rfind() untuk mencari karakter titik (".") terakhir.
  • Sisanya dari kode berfungsi dengan cara yang sama.

3. Menggunakan boost::filesystem::path

Jika Anda menggunakan library Boost, boost::filesystem::path menyediakan cara yang lebih elegan untuk menangani manipulasi jalur file, termasuk memeriksa ekstensi file.

#include 
#include 

using namespace std;
using namespace boost::filesystem;

int main() {
  path filename("example.txt");
  string extension = filename.extension().string();
  if (!extension.empty()) {
    cout << "Ekstensi file: " << extension << endl;
  } else {
    cout << "File tidak memiliki ekstensi." << endl;
  }
  return 0;
}

Penjelasan:

  • Kode ini menggunakan boost::filesystem::path untuk mewakili nama file.
  • extension() mengembalikan objek path yang berisi ekstensi file.
  • string() digunakan untuk mengonversi objek path menjadi string.

Kesimpulan

Ada beberapa cara untuk memeriksa ekstensi file string dalam C++. Metode yang Anda pilih akan bergantung pada kebutuhan dan preferensi Anda.

Latest Posts