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

 

posted @ 2017-12-26 15:38  ParanoiaApe  阅读(417)  评论(0)    收藏  举报