PHP ile bir ZIP dosyası boş bir dizini kaldırmak

3 Cevap php

PHP class for ZIP file manipulation getiriyor. Ayrıca addEmptyDir ile dizinleri oluşturma () ve deleteName bir giriş silme () sağlar. Ama silme dizinleri (boş veya değil) çalışmaz. Bir ZIP dosyası içinde boş klasörleri (PHP işlevselliği buildin edilir tercihine) silmek için herhangi bir yolu var mı?

3 Cevap

Sen dizin adlarını bir / eklemek gerekir. Yani, böyle bir şey çalışır:

<?php
    $zip = new ZipArchive;
    if ($zip->open('test.zip') === TRUE) {
        $zip->deleteName('testDir/');
        $zip->close();
    }
?>

Yani, TestDir karşı TestDir / ....

Sen her zaman sadece, bir tmp dizine ayıklayın rmdir ile herhangi bir boş dizinleri silmek () ve daha sonra onu tekrar zip olabilir.

Kontrol etmek için başka bir şey izinleri olduğunu. Eğer işlemek için çalıştığınız dosya üzerinde yazma izinlere sahip olduğunuzdan emin misiniz?

Dizinleri kavramı hakkında küçük bir not. Bir dizin gibi bir şey yoktur. Örneğin: foo / a.txt ve foo / b.txt iki girişleri vardır, ama hiçbir foo / dizini yok. Ancak, bir dizin "taklit" foo adında bir giriş / oluşturmak mümkündür.

Hiçbir şey kaldırılmış ise true dönen silme yöntemi, bir böcek gibi, ben http://bugs.php.net yeni bir hata açmayı Philip istedi ben kısa zamanda tanıya götürecek düzeltebilirim görünüyor.

Teşekkürler!