首先,我要求人们不要将其视为重复的问题,请查看查询。 我将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;
}