快速生成Plugman中的"lib-file"、"source-file"的xml内容

本文介绍了一个用于遍历指定插件目录并生成相应XML配置文件的Java工具类。该工具类能够递归地扫描指定路径下的所有文件及子目录,针对不同类型的文件(如.java、.xml、.png和.jar文件),生成不同格式的XML标签,适用于插件化或模块化开发场景。

目录结果:



工具类:

package com.inforstack.plugman;

import java.io.File;

public class Plugin {
	//插件的相对目录
	private static String basePath = "src/android/demo";
	//插件的绝对目录
	private static String path = "D:\\work\\cordova\\plugin\\demo\\src\\android\\demo";

	public static void main(String[] args) {
		getFile(path);
	}

	private static void getFile(String path) {
		// 获取路径所在的文件列表
		File dirFile = new File(path);
		// 获取文件列表
		File[] array = dirFile.listFiles();
		for (File file : array) {
			if (file.isFile()) {
				toXML(file.getName(), file.getPath());
			} else if (file.isDirectory()) {
				getFile(file.getPath());
			}
		}
	}

	private static void toXML(String fileName, String filePath) {
		if (fileName.indexOf(".java") != -1 || fileName.indexOf(".xml") != -1 || fileName.indexOf(".png") != -1) {
			String newFilePath = filePath.replace(path, "");
			String newDirPath = newFilePath.replace("\\" + fileName, "");
			newDirPath = newDirPath.substring(1, newDirPath.length());
			String xml = String.format("<source-file src=\"%s%s\" target-dir=\"%s\" />", basePath,newFilePath, newDirPath);
			xml = xml.replace("\\", "/");
			System.out.println(xml);
		} else if (fileName.indexOf(".jar") != -1) {
			String newFilePath = filePath.replace(path, "");
			String xml = String.format("<lib-file src=\"%s%s\"/>", basePath,newFilePath);
			xml = xml.replace("\\", "/");
			System.out.println(xml);
		}
	}
}


结果:

<lib-file src="src/android/demo/libs/MobCommons-2016.1222.1756.jar"/>
<lib-file src="src/android/demo/libs/MobTools-2016.1222.1756.jar"/>
<source-file src="src/android/demo/res/values/ssdk_instapaper_strings.xml" target-dir="res/values" />
<source-file src="src/android/demo/src/cn/sharesdk/onekeyshare/CustomerLogo.java" target-dir="src/cn/sharesdk/onekeyshare" />
<source-file src="src/android/demo/src/cn/sharesdk/onekeyshare/themes/classic/ClassicTheme.java" target-dir="src/cn/sharesdk/onekeyshare/themes/classic" />
<source-file src="src/android/demo/src/cn/sharesdk/onekeyshare/themes/classic/land/EditPageLand.java" target-dir="src/cn/sharesdk/onekeyshare/themes/classic/land" />
<source-file src="src/android/demo/src/cn/sharesdk/onekeyshare/themes/classic/port/EditPagePort.java" target-dir="src/cn/sharesdk/onekeyshare/themes/classic/port" />




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值