hocam istediğinizi php ile yapmanız zor ve sıkıcı. ben daha önce böyle bir şey yapmıştım. kodlarını paylaşayım ve kendinize göre uyarlayım;

ilk olarak listelemenizi;

<ul id="dosya_sayfalama">
<li>dosya adı</li>
<li>dosya adı</li>
<li>dosya adı</li>
<li>dosya adı</li>
</ul>

div id="dosya_sayfalar"></div>
şekline çevirin. daha sonra sayfanın bir yerine yada sayfaya dahil olan bir js nin içine;

$(document).ready(function(e) {

	var toplamLi 	= $("#dosya_sayfalama > li").length; //kaç tane li var
	var veriSayi 	= 5; //her sayfada kaç tane gösterilecek
	var sayfaSayi 	= Math.ceil(toplamLi / veriSayi); //sayfa sayısını bulduk
	
	//ilk sayfadan sonrakileri gizliyoruz
	$("#dosya_sayfalama li:gt("+ (veriSayi-1) +")").hide();
	
	
	//sayfa linklerini yazdırıyoruz
	for(var i=1; i<=sayfaSayi; i++){
		$("#dosya_sayfalar").append('<a href="javascript:void(0);">' + i + '</a>');
	}
	
	// ilk sayfaya aktif classını ekledik
	$("#dosya_sayfalar a:first").addClass("aktif");
	
	$("#dosya_sayfalar a").live("click", function(){
		
		$("#dosya_sayfalar a").removeClass("aktif");
		$(this).addClass("aktif");
		
		var indis 	= $(this).index() + 1;
		var gt	= veriSayi * indis;
		
		$("#dosya_sayfalama > li").hide();
		
		for(var s = gt-veriSayi; s < gt; s++){
			$("#dosya_sayfalama li:eq(" + s+ ")").show();
		}
		
	});

});
kodlarını eklemen lazım. ve sitil dosyana

#dosya_sayfalama { display:block; width: 95%; height: auto; list-style:none; margin-top: 30px; }
#dosya_sayfalama > li { display:block; padding:0; margin:0; margin-bottom: 20px; }

#dosya_sayfalar { display:block; width: 100%; height: 30px; line-height: 30px; margin-top: 20px; margin-bottom: 20px; }
#dosya_sayfalar a { color: #fff; background-color: #333; padding: 3px 7px; margin-right: 6px; text-decoration: none;	}
#dosya_sayfalar a.aktif { background-color:#999999;}
kodlarını eklersen istediğin olmuş olur.