Date le specifiche
  • accesso a file con nome *.dati.txt
  • numero di file variabile ma in quantità limitata
  • ogni file contiene un numero e solo quello

chiedi di calcolare la sommatoria dei numeri contenuti nei file.

Prendendo spunto dalla soluzione già proposta e corretta fornita da codencode, aggiungendo un controllo sul file che andiamo a leggere perchè sia quello da specifica e sintetizzando il codice necessario ad otterenre la funzionalità mi è saltato fuori quel che segue

Codice PHP:
<?php
$dati_generali 
0;
$percorso "./file/";
(
$dir scandir($percorso)) or die("Lettura directory fallita");
foreach(
$dir as $file)
    if(
is_file($percorso.$file) and strpos($percorso.$file,'.dati.txt')!==false)
        
$dati_generali+=file_get_contents($percorso.$file);
echo 
$dati_generali;
?>
Può piacere?

Se poi invece sei un amante delle funzioni e desideri generalizzare il codice ottengo
Codice PHP:
<?php
/**
 * Legge dalla path specificata tutti i file che rispondono alla regexp
 * prelevandone il contenuto (che deve ssere un numero) e restituendone la
 * sommatoria
 * @param String $path La directory contenente i file
 * @param String $regexp L'espressione regolare utilizzata per la verifica dei nomi file
 * @return int
 */
function SommaDaFile($path$regexp) {
    
$somma 0;
    (
$dir scandir($path)) or die("Lettura directory fallita");
    foreach (
$dir as $file)
        if (
is_file($path $file) and preg_match ($regexp$file))
            
$somma+=file_get_contents($path $file);
    return 
$somma;
}

//Esempio di utilizzo della funzione nel caso in oggetto supponendo che
//username sia composto di soli caratteri alfabetici e numerici
echo SommaDaFile("./file/"'/^\w+\.dati\.txt$/');
?>
che fa le stesse identiche cose del codice precedente ma in più ti permette di accedere in modo più mirato ai file di interesse, ignorando gli altri, e su una qualunque cartella.

Se poi ancora non basta perchè sei un amante della cattura degli errori allora puoi
Codice PHP:
<?php
/**
 * Legge dalla path specificata tutti i file che rispondono alla regexp
 * prelevandone il contenuto (che deve ssere un numero) e restituendone la
 * sommatoria
 * @param String $path La directory contenente i file
 * @param String $regexp L'espressione regolare utilizzata per la verifica deifile
 * @return int
 */
function SommaDaFile($path$regexp) {
    
$somma 0;
    if((
$dir scandir($path))===false)
      throw new 
Exception("Impossibile leggere il contenuto di $path",1);
    foreach (
$dir as $file)
        if (
is_file($path $file) and preg_match ($regexp$file)){
            if((
$num=file_get_contents($path $file))===false)
                throw new 
Exception("Si è verificato un errore nell'accesso al file $file"2);
            
$somma+=$num;
        }
    return 
$somma;
}

try{
    
//Esempio di utilizzo della funzione nel caso in oggetto supponendo che
    //username sia composto di soli caratteri alfabetici e numerici
    
echo SommaDaFile("./file/"'/^\w+\.dati\.txt$/');
}catch (
Exception $e){
    die(
$e->getMessage());
}
?>
che fa sempre la stessa cosa.

E poi non so... ma penso sia una buona base per cominciare