【发布时间】:2019-04-01 09:35:21
【问题描述】:
如何检查下载的部分文件名并替换目标中的旧文件。
版本是文件名的一部分。如果旧版本文件不存在,则只需复制它。考虑“下载”中的文件是最新的。
文件夹“下载”有来自服务器的最新文件。还有一些文件已经存在的“目标”文件夹。
文件名模式:<UNIQUE_NAME>_<VERSION>_<SOME-TYPE>.dat
/下载 - 这里都是最新的
FILE01_01.02.03_xy-z.dat
FILE02_02.03.04_xy-z.dat
FILE_11_03 .04.05_xy-z.dat
/目标 - 之前
FILE02_01.00.02_xy-z.dat
FILE04_01.00.00_xy-z .dat
FILE_03_01.00.01_xy-z.dat
FILE_11_01.01.00_xy-z.dat
/目标 - 移动后(待办事项)
FILE01_01.02.03_xy-z.dat - 目标中不存在(简单复制)
FILE02_02.03.04_xy-z.dat - 替换为最新的
FILE04_01.00.00_xy-z.dat - 无法下载最新的(什么都不做)
FILE_03_01.00.01_xy-z.dat - 无法下载最新的(什么都不做)
FILE_11_03.04.05_xy-z.dat - 已替换按最新
【问题讨论】:
-
如果可能的话,通过 javascript 使用
也可以。 -
FILE_11_03.04.05_xy-z.dat 没有格式
_ _ -
谢谢@Alan,实际上这就是限制。名称的唯一部分也可以包含“_”。
-
我认为获取文件唯一名称的公式是:在版本之前的下划线之前的字符。这意味着,(_) 之前的字符在第一个 (.) 点之前的下划线。因为第一个点将出现在版本和下划线之前,是唯一名称和版本的连接符。
-
这是 Ant 的
copy任务的默认行为。仅当目标目录中的现有文件比源目录中的文件旧时才会被覆盖,除非您将overwrite属性设置为 true,在这种情况下,所有文件都将被覆盖,无论其修改时间如何。 ant.apache.org/manual/Tasks/copy.html
标签: java eclipse ant antbuilder