Ben bu (see revisions önceki sürümleri için em>), en iyi bahis olduğunu düşünüyorum:
$files = glob('/path/to/dir/*'); // get all files in folder
natsort($files); // sort
$lastFile = pathinfo(array_pop($files)); // split $lastFile into parts
$newFile = $lastFile['filename'] +1; // increase filename by 1
if(file_exists("/path/to/dir/$newFile")) { // do not write file if it exists
die("$newFile aready exists");
}
file_put_contents("/path/to/dir/$newFile", 'stuff'); // write new file
Sürece klasöründe dosya isimleri numaraları ile başlamak gibi, bu her zaman, örneğin, bir artırılır yüksek numaralı dosya yazmak gerekir
1,5,10 => writes file 11
1.txt, 5.gif, 10.jpg => writes file 11
1, 5.txt, 10_apple.txt => writes file 11
not bir sayı ile başlayan bir dosya varsa, sayılar karakterden önce sıralanır çünkü yukarıdaki yaklaşım, çalışmaz ve dolayısıyla hiçbir şey örn için yazılmış olacaktır
1,5,10,foo => foo+1 equals 1, already exists, nothing written
Daha sonra sadece bir sayı ile başlayan dosyaları maç olacak /path/[0-9]* için topak için desen, değiştirerek bu sorunun üstesinden gelebilirsiniz. O zaman oldukça sağlam olmalıdır.
Note natsort, farklı işletim sistemi üzerinde farklı davranır. Yukarıdaki eserler benim Windows makinede ince, ancak bunun belirli bir makine için çalışma almak için çıkan sıralama düzenini kontrol etmek isteyecektir. Em>
glob() , natsort() and pathinfo() a> nasıl kullanılacağı hakkında daha fazla bilgi için kılavuzuna bakın;