2011-12-13 118 views
5

我有一個Zip文件。我用ZipArchive php庫打開它,並添加一個目錄和一個文件。當我用ubuntu的默認unarchiver解壓時,一切都按預期工作。但是當我使用OS X Snow Leopard上的任何unarchiver解壓縮它時(嘗試使用默認的Keka和Unarchiver),新目錄的權限爲700.預期權限爲755.在ZipArchive中設置權限

因此,這裏是原始zip文件:

DIRECTORY 
a.txt 
b.txt 

這裏是我的代碼:

<?php 
$file = 'example.zip'; 
$zip = new ZipArchive; 
$res = $zip->open($file, ZipArchive::CREATE); 
    if ($res === TRUE) { 

    $zip->addEmptyDir('DIRECTORY/NEW_DIR'); 
    $zip->addFromString('DIRECTORY/NEW_DIR/c.txt', 'hellooo'); 
    $zip->close(); 
    } 
    else { 
    print 'error'; 
    } 

,其結果是:

DIRECTORY -> NEW_DIR -> c.txt 
a.txt 
b.txt 

這是正確的,但NEW_DIR目錄的權限是700(drwx ------)而不是755,如果我在osx下解壓縮它。如何解決它?

謝謝!

編輯:

下面是關於在我的zip文件的zipinfo:

$ zipinfo -l test.zip 
(..) 
drwxr-xr-x 3.0 unx  0 bx  0 stor 13-Dec-11 17:43 DIRECTORY/ 
-rw-r--r-- 3.0 unx  533 tx  327 defN 3-Nov-11 01:50 a.txt 
-rw-r--r-- 3.0 unx 91669 tx 32044 defN 3-Nov-11 01:09 b.txt 
-rw----  0.0 fat  0 b-  2 defN 13-Dec-11 18:12 DIRECTORY/new_dir/ 
-rw----  0.0 fat  7 b-  9 defN 14-Dec-11 10:30 DIRECTORY/new_dir/c.txt 
+0

有趣的東西線更新:你的項目的起源被存儲爲「Unix文件系統」或「Windows FAT」: - ? – 2011-12-14 11:22:50

+0

我正在使用雪豹,我認爲它是hfs +。 – mimrock 2011-12-14 13:13:58

回答

-1

如果有必要的安全權限,你可以做沿着

<?php 
    exec("chmod -R 755 /directory/new_dir");