使用相对路径代替绝对路径

时间:2014-11-06 10:39:13

标签: java file relative-path shibboleth

首先,我要求人们不要将其视为重复的问题,请查看查询。 我将xml文件从一个文件夹复制到另一个文件夹,在源文件夹中,我有一些文件有一些内容,如“backingFile =”$ IDP_ROOT / metadata / iPAU-SP-metadata.xml“但是在写入目的地时夹。 我正在用我当前的工作目录替换“$ IDP_ROOT”。整个文件复制用于部署到tomcat 服务器。仅在服务器第一次启动时才进行复制。 问题:如果我在运行服务器后从我的机器中的根路径更改文件夹名称, 整个过程将被停止,因为目标文件夹文件已包含与之相关的内容 现有文件名或文件夹名。

所以我想将它改为相对路径而不是绝对路径。最好的方法是什么?

请查看以下代码:

        // Getting the current working directory
        String currentdir = new File(".").getAbsoluteFile().getParent() + File.separator;

if(currentdir.indexOf("ControlPanel")!=-1){
    rootPath=currentdir.substring(0, currentdir.indexOf("ControlPanel"));
}else{
    rootPath=currentdir;            
}

rootPath = rootPath.replace("\\", "/"); 



        // target file in source folder is having "backingFile="$IDP_ROOT/metadata/iPAU-SP-metadata.xml"

String content = FileReaderUtil.readFile(targetFile,
        rootPath + "Idp/conf");
content = updatePath(content, Install.rootPath
        + "IdP/IdPserver/metadata","$IDP_ROOT");
FileWriterUtil.writeToFile(Install.rootPath
        + "IdP/IdPserver/idp/conf", content,
        targetFile);

    //  update method
   public String updatePath(String content, String replaceString,String replaceKey) {
replaceKey = replaceKey!=null ? replaceKey : "$IDP_SERVER_ROOT";
replaceString= replaceString.replace("\\","/");
String updateContent = content.replace(replaceKey,
        replaceString);
return updateContent;

}

0 个答案:

没有答案