您的位置:首页 > 其它

osc用svn提交包含空目录解决办法

2016-03-08 14:07 246 查看
在osc用svn提交项目代码的时候,发现项目包含空目录时会提交失败。

Error: Commit failed (details follow):

Error: svn: E200015: Empty directories is not supported: /lib

在开源社区问答处看到有人建议在空文件夹下建一个空的文件.keep。根据此方法写了个自动处理的方法。

功能:遍历jar所在目录的所有文件夹,对空的文件夹创建.keep文件。

使用前提:要装jvm

使用方法:把 createKeep.jar放在要上传项目的目录下,上传前双击运行即可(本人只在win7上测试)。

CreateKeep.java

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: