Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menentukan Saiz Fail dalam C Tanpa Perpustakaan Luaran?

Bagaimana untuk Menentukan Saiz Fail dalam C Tanpa Perpustakaan Luaran?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-12 21:20:02378semak imbas

How to Determine File Size in C   Without External Libraries?

Menentukan Saiz Fail dalam C

Bagaimana saya boleh mendapatkan saiz fail dalam C sambil mengekalkan kemudahalihan, kebolehpercayaan dan kesederhanaan, tanpa perpustakaan yang ditanggung dependencies?

Penyelesaian:

Kaedah yang paling biasa dan boleh dipercayai untuk menentukan saiz fail dalam C ialah dengan menggunakan kelas std::ifstream. Begini cara anda boleh melaksanakannya:

#include <fstream>

std::ifstream::pos_type filesize(const char* filename)
{
    std::ifstream in(filename, std::ifstream::ate | std::ifstream::binary);
    return in.tellg();
}

Dalam kod ini:

  • std::ifstream(nama fail, std::ifstream::ate | std::ifstream:: binari) membuka fail yang ditentukan untuk dibaca.
  • std::ifstream::ate meletakkan penunjuk fail di hujung daripada fail.
  • std::ifstream::binary memastikan fail dibaca dalam mod binari.
  • in.tellg() mendapatkan semula kedudukan semasa penuding fail, yang mewakili fail saiz.

Nota:
Adalah penting untuk ambil perhatian bahawa penyelesaian ini menggunakan tellg(), yang tidak selalu mengembalikan saiz fail yang betul pada sistem tertentu. Rujuk perbincangan ini untuk mendapatkan maklumat tambahan: http://stackoverflow.com/a/22986486/1835769.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Saiz Fail dalam C Tanpa Perpustakaan Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn