Comment puis-je calculer efficacement la taille d'un répertoire en PHP ?

Susan Sarandon
Libérer: 2024-11-19 12:04:03
original
177 Les gens l'ont consulté

How Can I Efficiently Calculate a Directory's Size in PHP?

Comprendre le calcul de la taille d'un dossier en PHP

Mesurer la taille d'un répertoire est une tâche courante lors de la gestion des systèmes de fichiers en PHP. Cependant, certaines approches peuvent conduire à une utilisation élevée du processeur. Cet article explore une solution plus optimisée et des alternatives pour calculer la taille du répertoire en PHP.

Le code original présenté dans la question utilise une fonction récursive, Foldersize, pour parcourir les fichiers et les dossiers, en accumulant leurs tailles. Bien que cette approche fonctionne, elle peut avoir un impact sur les performances en raison de la nature récursive de l'algorithme.

Pour optimiser ce processus, la fonction améliorée GetDirectorySize suggérée dans la réponse adopte une approche plus efficace :

function GetDirectorySize($path){
    $bytestotal = 0;
    $path = realpath($path);
    if($path!==false && $path!='' && file_exists($path)){
        foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS)) as $object){
            $bytestotal += $object->getSize();
        }
    }
    return $bytestotal;
}
Copier après la connexion

Cette fonction :

  • Convertit $path en realpath pour garantir un chemin valide.
  • Vérifie si le chemin est valide et que le dossier existe.
  • Utilise RecursiveIteratorIterator pour parcourir l'arborescence des répertoires, à l'exclusion de . et .. fichiers pour les performances.
  • Accumule la taille de chaque fichier dans le répertoire.

En utilisant cette approche optimisée, l'utilisation du processeur peut être considérablement réduite tout en conservant une taille de répertoire précise calcul.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal