本文整理汇总了Java中org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setExternalAttributes方法的典型用法代码示例。如果您正苦于以下问题:Java ZipArchiveEntry.setExternalAttributes方法的具体用法?Java ZipArchiveEntry.setExternalAttributes怎么用?Java ZipArchiveEntry.setExternalAttributes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.commons.compress.archivers.zip.ZipArchiveEntry
的用法示例。
在下文中一共展示了ZipArchiveEntry.setExternalAttributes方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: entryToNewName
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; //导入方法依赖的package包/类
/**
* Entry to new name.
*
* @param source the source
* @param name the name
* @return the zip archive entry
* @throws ZipException the zip exception
*/
public static ZipArchiveEntry entryToNewName(ZipArchiveEntry source, String name) throws ZipException {
if (source.getName().equals(name))
return new ZipArchiveEntry(source);
ZipArchiveEntry ret = new ZipArchiveEntry(name);
byte[] extra = source.getExtra();
if (extra != null) {
ret.setExtraFields(ExtraFieldUtils.parse(extra, true, ExtraFieldUtils.UnparseableExtraField.READ));
} else {
ret.setExtra(ExtraFieldUtils.mergeLocalFileDataData(source.getExtraFields(true)));
}
ret.setInternalAttributes(source.getInternalAttributes());
ret.setExternalAttributes(source.getExternalAttributes());
ret.setExtraFields(source.getExtraFields(true));
ret.setCrc(source.getCrc());
ret.setMethod(source.getMethod());
ret.setSize(source.getSize());
return ret;
}
示例2: addFolder
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; //导入方法依赖的package包/类
/**
*
* @param folder
* @param parentFolderInZip -
* @throws Exception
*/
public void addFolder(File folder, String parentFolderInZip) throws Exception {
StringBuilder sb = new StringBuilder(parentFolderInZip.length()+64).append(parentFolderInZip);
if (!parentFolderInZip.endsWith("/")) {
sb.append('/');
}
sb.append(folder.getName()).append('/');
int baseLen = sb.length();
long attr = getExternalAttribute(folder);
if (attr != 0) {
attr = attr | ATTR_DIR;
ZipArchiveEntry ze = new ZipArchiveEntry(sb.toString());
ze.setExternalAttributes(attr);
zout.putArchiveEntry(ze);
zout.closeArchiveEntry();
}
File[] fa = folder.listFiles();
for (int i = 0; i < fa.length; i++) {
File f = fa[i];
if (f.isDirectory()) {
addFolder(f, sb.toString());
} else {
FileInputStream fin = new FileInputStream(f);
addStream(sb.append(f.getName()).toString(), fin, getExternalAttribute(f));
sb.setLength(baseLen);
}
}
}
示例3: copyEntry
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; //导入方法依赖的package包/类
/**
* Entry to new name.
*
* @param source the source
* @param name the name
* @return the zip archive entry
* @throws ZipException the zip exception
*/
private ZipArchiveEntry copyEntry(ZipArchiveEntry source) throws ZipException {
ZipArchiveEntry ret = new ZipArchiveEntry(source.getName());
byte[] extra = source.getExtra();
if (extra != null) {
ret.setExtraFields(ExtraFieldUtils.parse(extra, true, ExtraFieldUtils.UnparseableExtraField.READ));
} else {
ret.setExtra(ExtraFieldUtils.mergeLocalFileDataData(source.getExtraFields(true)));
}
ret.setInternalAttributes(source.getInternalAttributes());
ret.setExternalAttributes(source.getExternalAttributes());
ret.setExtraFields(source.getExtraFields(true));
return ret;
}
示例4: testExtractBrokenSymlinkWithOwnerExecutePermissions
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; //导入方法依赖的package包/类
@Test
public void testExtractBrokenSymlinkWithOwnerExecutePermissions()
throws InterruptedException, IOException {
assumeThat(Platform.detect(), Matchers.is(Matchers.not(Platform.WINDOWS)));
// Create a simple zip archive using apache's commons-compress to store executable info.
try (ZipArchiveOutputStream zip = new ZipArchiveOutputStream(zipFile.toFile())) {
ZipArchiveEntry entry = new ZipArchiveEntry("link.txt");
entry.setUnixMode((int) MoreFiles.S_IFLNK);
String target = "target.txt";
entry.setSize(target.getBytes(Charsets.UTF_8).length);
entry.setMethod(ZipEntry.STORED);
// Mark the file as being executable.
Set<PosixFilePermission> filePermissions = ImmutableSet.of(PosixFilePermission.OWNER_EXECUTE);
long externalAttributes =
entry.getExternalAttributes() + (MorePosixFilePermissions.toMode(filePermissions) << 16);
entry.setExternalAttributes(externalAttributes);
zip.putArchiveEntry(entry);
zip.write(target.getBytes(Charsets.UTF_8));
zip.closeArchiveEntry();
}
Path extractFolder = tmpFolder.newFolder();
ArchiveFormat.ZIP
.getUnarchiver()
.extractArchive(
new DefaultProjectFilesystemFactory(),
zipFile.toAbsolutePath(),
extractFolder.toAbsolutePath(),
ExistingFileMode.OVERWRITE);
Path link = extractFolder.toAbsolutePath().resolve("link.txt");
assertTrue(Files.isSymbolicLink(link));
assertThat(Files.readSymbolicLink(link).toString(), Matchers.equalTo("target.txt"));
}