您的位置:首页 > 编程语言 > Java开发

删除空白瓦片

2016-05-18 13:38 429 查看
通过GMAP平台的切图工具切片后,存在很多空白瓦片文件(png格式,GMAP切图出来的瓦片为非紧凑格式),这些文件对最终地图呈现没有作用,因此可以将这些瓦片删除,以大幅减少瓦片数量,提升传输和地图访问效率。本文用Java实现了一个小程序,通过输入瓦片存放的路径目录,以及空白瓦片文件大小上限值。来递归删除该目录下所有的空白瓦片。

package deleteBlankTiles;

import java.io.File;

public class DelBlankTiles {
//空白瓦片大小上限
private static int blankTileUpperSize;
//累计删除计数器
private static long sum=0;

private static void traverseFolder(String directoryPath){
System.out.println("正在处理目录:"+directoryPath);
File oDirectoryPath=new File(directoryPath);
File[] files=oDirectoryPath.listFiles();
if(files.length==0){
return;
}else{
String delFileName;
long delFileLength;
for(File file:files){
if(file.isDirectory()){
traverseFolder(file.getAbsolutePath());
}else{
if(file.length()<blankTileUpperSize){
try{
delFileName=file.getAbsolutePath();
delFileLength=file.length();
file.delete();
System.out.println(delFileName + "  " + delFileLength + "bytes  被删除!");
System.out.println("累计删除文件数:" + (++sum));
}catch(Exception e){
//若当前文件删除失败,不做任何处理,继续下一个文件的删除。
}
}
}
}
}
}

public static void main(String[] args){
String directoryPath=args[0];
try{
blankTileUpperSize=Integer.parseInt(args[1]);
}catch(NumberFormatException ex){
System.out.println("空白瓦片文件上限大小参数格式错误!");
return;
}
File oDirectoryPath=new File(directoryPath);
if(!oDirectoryPath.exists() || !oDirectoryPath.isDirectory()){
System.out.println("文件夹路径错误!");
return;
}
traverseFolder(directoryPath);
System.out.println("执行完毕!");
}
}


将上述程序导出jar包后,在瓦片所在的服务器上只要具备Java运行环境(推荐jdk1.6),就可以执行该程序。

程序调用方式及执行结果如下图所示。其中,执行命令中带的两个参数:

C:\test 代表瓦片文件的根路径

1000 代表空白瓦片文件大小上限值,单位为字节。以为着小于1000bytes的文件都会被删除。



删除空白瓦片程序jar包下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 空白瓦片