Aanpassingsdatum van een bestand

Status
Niet open voor verdere reacties.

bn2vs

Terugkerende gebruiker
Lid geworden
18 aug 2007
Berichten
1.705
Met deze code kan ik de 'aanpassingsdatum' van een directory weergeven
PHP:
echo($dir, date("g:i a - D M d, Y",filemtime($fullPath));
Ik krijg dan de datum waarop deze is gemaakt (naam aanpassen heeft blijkbaar geen effect?), maar wil de datum waarop de laatste wijziging in die folde heeft plaatgevonden. Is dat mogelijk zonder elke file af te gaan en de hoogste timestamp te omthouden?

Alvast bedankt :D
 
De laatste wijziging kun je opvragen met de functie filectime();.

Zonder alle bestanden bij langs te gaan is het niet mogelijk...
Deze code staat op de PHP-site als comment bij de bovenstaande functie:
PHP:
foreach (glob("../downloads/*") as $path) { //configure path
    $docs[$path] = filectime($path);
} asort($docs); // sort by value, preserving keys

Deze bekijkt alle bestanden in de map downloads (Uiteraard verander je die naar wens) en zet de resultaten in een array. Die wordt daarna gesorteerd op timestamp :)
 
Ok, thnx, dit werkt perfect

PHP:
function getDirChange($dir)
	{
	$docs = array();
	foreach (glob("$dir/*") as $path)
		{
		if (is_dir($path))
			{
			$docs[$path] = getDirChange($path);
			}
		elseif (is_file($path))
			{
			$docs[$path] = filectime($path); 
			}
		} 
	rsort($docs); 
	return $docs[0];
	}

Analoge oplossing voor de totale grote

PHP:
function getDirSize($dir)
	{
	$totalSize = 0;
	foreach (glob("$dir/*") as $path)
		{
		if (is_dir($path))
			{
			$totalSize += getDirSize($path);
			}
		elseif (is_file($path))
			{
			$totalSize += filesize($path); 
			}
		} 
	return $totalSize;	
	}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan