Bagaimana untuk mendapatkan saiz fail menggunakan C++?

WBOY
Lepaskan: 2024-06-01 14:22:56
asal
523 orang telah melayarinya

Soalan: Bagaimana untuk mendapatkan saiz fail dalam C++? Jawapan: 1. Gunakan fungsi ahli std::ifstream::tellg() untuk mendapatkan bilangan bait yang dibaca atau ditulis sejak membuka aliran fail 2. Gunakan std::filesystem::directory_iterator untuk melintasi fail dalam direktori, dan Gunakan std::ifstream::tellg() untuk mengira bilangan bait dalam setiap fail dan menambahnya untuk mendapatkan jumlah saiz.

Bagaimana untuk mendapatkan saiz fail menggunakan C++?

Bagaimana untuk mendapatkan saiz fail dalam C++?

Dalam C++ anda boleh menggunakan fungsi std::ifstream类来打开和读取文件。该类包含std::ifstream::tellg() ahli yang mengembalikan bilangan bait yang dibaca atau ditulis sejak aliran fail dibuka. Ini boleh digunakan untuk mendapatkan saiz fail.

Contoh kod:

#include <iostream>
#include <fstream>

int main() {
  // 打开文件
  std::ifstream file("myfile.txt");
  
  // 获取文件的大小
  file.seekg(0, std::ios::end);
  int file_size = file.tellg();
  
  // 打印文件大小
  std::cout << "The file size is: " << file_size << " bytes" << std::endl;
  
  file.close();
  return 0;
}
Salin selepas log masuk

Kes praktikal:

Berikut ialah contoh mendapatkan jumlah saiz semua fail dalam direktori tertentu:

#include <iostream>
#include <fstream>
#include <filesystem>

int main() {
  std::filesystem::path directory_path("my_directory");
  
  // 遍历目录中的文件
  int total_file_size = 0;
  for (const auto& entry : std::filesystem::directory_iterator(directory_path)) {
    if (entry.is_regular_file()) {
      // 打开文件
      std::ifstream file(entry.path());
      
      // 获取文件大小并累加到总和
      file.seekg(0, std::ios::end);
      total_file_size += file.tellg();
      
      file.close();
    }
  }
  
  // 打印总文件大小
  std::cout << "The total size of all files in the directory is: " << total_file_size << " bytes" << std::endl;
  return 0;
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan saiz fail menggunakan C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan