当前位置: 首页>>代码示例>>Java>>正文


Java ZipArchiveEntry.setExternalAttributes方法代码示例

本文整理汇总了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;
}
 
开发者ID:NitorCreations,项目名称:javaxdelta,代码行数:27,代码来源:JarDelta.java

示例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);
		}
	}
}
 
开发者ID:BeckYang,项目名称:TeamFileList,代码行数:35,代码来源:ZipUtil.java

示例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;
}
 
开发者ID:NitorCreations,项目名称:javaxdelta,代码行数:22,代码来源:JarPatcher.java

示例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"));
}
 
开发者ID:facebook,项目名称:buck,代码行数:39,代码来源:UnzipTest.java


注:本文中的org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setExternalAttributes方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。