Maison  >  Article  >  développement back-end  >  Comment obtenir la taille d’un fichier en utilisant C++ ?

Comment obtenir la taille d’un fichier en utilisant C++ ?

WBOY
WBOYoriginal
2024-06-01 14:22:56456parcourir

Question : Comment obtenir la taille d’un fichier en C++ ? Réponse : 1. Utilisez la fonction membre std::ifstream::tellg() pour obtenir le nombre d'octets lus ou écrits depuis l'ouverture du flux de fichiers ; 2. Utilisez std::filesystem::directory_iterator pour parcourir les fichiers du répertoire ; et utilisez std::ifstream::tellg() pour calculer le nombre d'octets dans chaque fichier et les additionner pour obtenir la taille totale.

Comment obtenir la taille d’un fichier en utilisant C++ ?

Comment obtenir la taille d'un fichier en C++ ?

En C++, vous pouvez utiliser la fonction membre std::ifstream类来打开和读取文件。该类包含std::ifstream::tellg() qui renvoie le nombre d'octets lus ou écrits depuis l'ouverture du flux de fichiers. Cela peut être utilisé pour obtenir la taille du fichier.

Exemple de code :

#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;
}

Cas pratique :

Ce qui suit est un exemple d'obtention de la taille totale de tous les fichiers dans un répertoire spécifique :

#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;
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn