我想在壓縮後保持某些文件權限,但是我注意到文件權限並未保留。不管我做什麼,解壓縮文件的文件權限總是rw-r-r--。文件權限沒有被保留,而在zip之後
我曾嘗試以下的事情:
在我的.bash_profile的umask設置爲0027不過,我在默認情況下看到新創建的壓縮文件創建的「0022」又名RW-R的文件的權限--r--。
我曾嘗試與模式777設置AsiExtraField和附加,要ZipArchiveEntry,但是,它似乎並沒有影響燙髮。
ZipArchiveEntry條目=新ZipArchieveEntry(文件名); AsiExtrafield temp = new AsiExtraField(); temp.setMode(777); entry.addAsFirstExtraField(temp); zipoutputstream.putNextEntry(條目);
- 對於ZipEntries我試圖setUnixMode()777,但是,仍然解壓文件有RW-R的許可 - R--。
ZipEntry entry = new ZipEntry(filename); entry.setUnixMode(777); zipoutputstream.putNextEntry(entry);
- 最後我明確設置前的即將拉上一個目標文件的文件權限,但是,文件的權限不會複製過來。
Runtime.getRuntime.exec("chmod 777" + file.getCanonicalPath()): ZipEntry entry = new ZipEntry(filename); zipoutputstream.putNextEntry(entry);
幫助非常感謝!
Zip不存儲文件權限。當您提取文件時,您將創建新文件。他們將擁有執行解壓縮的用戶的權限。參見[this](http://stackoverflow.com/questions/10735297/maintain-file-and-folder-permissions-inside-archives)。 –
@SotiriosDelimanolis所以如果我在我的bash_profile中設置一個umask,那麼新提取的文件是否具有掩碼設置的權限?因爲即使這似乎並非如此。我設置了一個0027的umask,它將轉換爲rw-r -----,但是當我提取文件時,它們似乎具有rw-r-r--的權限。另外設置提取文件的權限的典型程序是什麼? – rmoh21
我不知道'umask'是幹什麼的。根據您希望文件在提取後擁有哪些權限,請在解壓縮之前更改用戶或編寫一個提取文件的腳本,然後更改解壓縮文件的權限。 –