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;