osc用svn提交包含空目录解决办法
在osc用svn提交项目代码的时候,发现项目包含空目录时会提交失败。
Error: Commit failed (details follow):
Error: svn: E200015: Empty directories is not supported: /lib
在开源社区问答处看到有人建议在空文件夹下建一个空的文件.keep。根据此方法写了个自动处理的方法。
功能:遍历jar所在目录的所有文件夹,对空的文件夹创建.keep文件。
使用前提:要装jvm
使用方法:把 createKeep.jar放在要上传项目的目录下,上传前双击运行即可(本人只在win7上测试)。
import java.io.File; import java.io.IOException; public class CreateKeep { public static final String packageFile = ".keep"; public static void main(String[] args) { String path = getRealPath(); File file = new File(path); try { traversalAllFolder(file); } catch (Exception e) { e.printStackTrace(); } } /** * 遍历当前文件夹下的所有文件夹,对空的文件夹创建.keep文件 * * @param dir * @throws Exception */ final static void traversalAllFolder(File dir) throws Exception { File[] fs = dir.listFiles(); int fsLength = fs.length; if (fsLength == 0) { createFile(dir.getAbsolutePath()); } else { for (int i = 0; i < fsLength; i++) { if (fs[i].isDirectory()) { try { traversalAllFolder(fs[i]); } catch (Exception e) { } } } } } /** * 创建.keep文件 * * @param folderPath * 路径名 */ public static void createFile(String folderPath) { String fileName = folderPath + "/" + packageFile; File file = new File(fileName); try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } /** * 获取当前jar包所在路径 * * @return */ public static String getRealPath() { String realPath = CreateKeep.class.getClassLoader().getResource("") .getFile(); java.io.File file = new java.io.File(realPath); realPath = file.getAbsolutePath(); try { realPath = java.net.URLDecoder.decode(realPath, "utf-8"); } catch (Exception e) { e.printStackTrace(); } return realPath; } }
下载地址:createKeep.zip
转自:http://blog.csdn.net/qing666888/article/details/51606674