这是日方要的一个东西,以包名的形式输出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)