如何使用 ant 展平 zip 文件的顶级文件夹?

2023-12-28

许多 zip 文件都有根文件夹,如何解压 zip 文件并删除根文件夹?

我知道有globmapper:

<unzip dest="${dest.path}">
    <fileset dir="${source.path}">
        <include name="**/zipfile*.*.zip" />
    </fileset>
    <mapper>
        <globmapper from="rootFolder/*" to="*" />
    </mapper>
</unzip>

但是如果我不知道根文件夹的名称怎么办?通配符不起作用,例如

<globmapper from="root*Folder/*" to="*" />

有没有办法使用通配符或在没有根文件夹的情况下进行打包的映射器/函数?


实际上有一个专门为此制作的单独的映射器,称为 cutdirsmapper。尝试一下:

<unzip dest="${dest.path}">
    <fileset dir="${source.path}">
        <include name="**/zipfile*.*.zip" />
    </fileset>
    <cutdirsmapper dirs="1" />
</unzip>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 ant 展平 zip 文件的顶级文件夹? 的相关文章

随机推荐

  • 改造错误:预期为 BEGIN_ARRAY,但实际为 STRING

    在api响应中有时可以是数组 有时可以是字符串 这里的详细信息是数组 ts 2015 06 16 11 28 33 success true error false details user id 563 firstname K Matha
  • 在 Android 中使用 httpUrlConnection 发送授权标头

    我试图在使用 HttpUrlConnection 时设置 Authorization 标头 但我在服务器上看到它为 HTTP AUTHORIZATION 这是我的代码 public static String doGet String pa
  • 如何在 PHP 中返回文件

    我有一个文件 file zip 一个用户来到 download php 我希望用户的浏览器开始下载文件 我怎么做 readfile 是否打开服务器上的文件 这似乎是不必要的事情 有没有办法返回文件而不在服务器上打开它 我想你想要这个 att
  • 如何使用PDO和bindParam将数组插入mysql?

    我正在使用以下代码 该代码有效 但我想更改它以便它使用bindparam try dbh new PDO mysql host hostname dbname dbname username password stqid array for
  • 如何增加 C# 应用程序中 mysql 连接的连接超时?

    我想增加 mysql 连接的连接超时 但无法从 mysql 服务器的管理员面板修改超时设置 我想在 C 应用程序中执行此操作 并且我注意到我可以读取该属性连接超时 of MySql连接班级 我想知道有没有办法在打开 mysql 连接之前增加
  • eclipse可以调试或运行一个项目中的两个程序

    eclipse调试可以在一个项目中运行两个程序吗 我的意思是我有两个程序public static void main 方法 可以同时调试它们吗 我已经尝试这样做了 有两个显示控制台 调试窗口中有两个线程 您可以单击该线程来决定要调试哪个程
  • 使用create_task()还是gather()效率更高?

    我仍处于异步 python 的基础知识中 有些事情让我感到困惑 import asyncio loop asyncio get event loop for variation in args loop create task corout
  • 使用 FXML 的 JavaFX 窗口更换器

    我目前正在尝试在单击按钮时制作窗口 场景 更改器 具体来说 是在用户登录时更改窗口 我想知道如何减少冗余代码 并将负责更改窗口的方法放在一个集中的位置 是否有特定的设计模式可遵循 到目前为止 我有这个 主程序 java public cla
  • 如何从列中删除浮点值 - pandas

    我有一个数据框 如下所示 df pd DataFrame subject id 1 1 1 1 1 1 val 5 6 4 5 4 6 6 6 看起来如下图所示 我想放弃values from val以以下结尾的列 1 9 基本上我想保留这
  • 如何在PHP中使电子邮件链接在X分钟后过期?

    我正在处理电子邮件链接 一段时间后就会过期X分钟 其中X表示一些随机日期时间 所以我的动机是在一段时间后使链接过期 无论我在其中设置 date time 过期日期 所以我自己创建了虚拟代码只是为了确保我的代码是否有效 currentDate
  • TSql 触发器只需要在值已更改的列上触发

    我编写了一个触发器 需要根据行中实际更新的列对表执行一些不同的工作 我使用以下方法完成了此操作 IF UPDATE column name 那部分工作正常 然而 事实证明 代码的其他部分通过设置每个值来更新行 无论该值是否实际更改 这会导致
  • 悬停效果不适用于 IE8

    我使用 CSS 来改变表格悬停时的颜色 tabb tbody tr hover td color 006 background d0e4f2 这在 Chrome 和 Firefox 中运行良好 但在 Internet Explorer 8
  • 我应该如何解释 numpy.fft.rfft2 的输出?

    显然 rfft2 函数只是计算输入矩阵的离散 fft 但是 如何解释输出的给定索引 给定输出的索引 我要查看哪个傅立叶系数 我对输出的大小特别困惑 对于 n n 矩阵 输出似乎是 n n 2 1 矩阵 对于偶数 n 为什么方阵最终会得到非方
  • 用标记而不是箭头进行注释

    我该如何获取这段代码 import matplotlib pyplot as plt fig plt figure ax fig add subplot 111 x 1 2 3 4 5 6 7 8 9 10 y 1 1 1 2 10 2 1
  • 如何避免在 Facelets 页面中重复/使用常量?

    在 Facelets 页面中 我有各种
  • 在 awk 中转置两个字段

    假设一个文件如下所示 a b c d a b c d a b c d 如何转置两个字段 例如 c b a d c b a d c b a d 提前致谢 这是另一个解决方案 交换第一个和第三个字段 然后打印 awk F temp 1 1 3
  • typeid 不适用于非静态成员函数

    clang不编译第三次调用typeid下面 参见活生生的例子 http coliru stacked crooked com a e61efc069f27dc35 但我在第 5 2 8 节中看不到任何不允许这样做的内容 特别是当我们认为表达
  • 仅对已编辑的文件启用 eslint

    最近 我配置了我的项目之一的eslint 这个项目由数百个文件组成 一旦我配置了 eslint 就会开始在所有文件中显示错误 IMO eslint 会遍历所有 js 文件 目前不需要 有什么方法可以限制 eslint 只针对已编辑的文件吗
  • 如何使用Python计算gurobi中的2范数约束?

    有人可以帮我编写 2 范数约束吗 k 2 n 2 w model addMVar k n lb 1 0 ub 1 0 vtype gp GRB CONTINUOUS name w for i in range k sumw 0 for j
  • 如何使用 ant 展平 zip 文件的顶级文件夹?

    许多 zip 文件都有根文件夹 如何解压 zip 文件并删除根文件夹 我知道有globmapper