这是日方要的一个东西,以包名的形式输出java source文件名。
最终的结果大概是这样
com.a.b.D.java
com.a.b.E.java
com.a.b.F.java
拿到这个问题,我最开始用了一个“tree /F >java_file.list”
但是要把这个结果整理成包的形式还是有一点麻烦的。
于是就写了下面的python脚本
他将递归遍历文件夹,过滤出所有java文件,取出他相对于source跟文件夹的相对路径(也就是包开始的位置)
最后将这个相对路径中的路径分割符替换成包分隔符(也就是".")。
代码如下:
import os
import os.path
__author__="wjason"
__date__ ="$2010/08/25 9:01:30$"
def showJavaFile(aPath):
for root,dirs, files in os.walk(aPath):
for f in files:
sufix = os.path.splitext(f)[1][1:]
# @type sufix str
if sufix.lower() == "java":
full_path = os.path.join(root, f)
rel_path = os.path.relpath(full_path, target_dir)
# @type rel_path str
package_path =rel_path.replace("\\", ".")
print package_path
if __name__ == "__main__":
target_dir ="C:\\_MyWork\\Eclipse.workspace.lib\\app\\src"
showJavaFile(target_dir)