我正在开发一个项目并且有一个验证xml文件的类,但它们来自webPage,并从webmail下载并保存在临时文件夹中。
我的问题是,如果我按应用程序获取文件,我可以获取我的xsd文件进行验证。但是通过电子邮件下载,他们不会加载我的文件。
但是如何在资源文件夹中获取这些文件?
public static String xsdFile(File file) {
String rootElement = getRootElement(file);
String rootVersion = getVersion(file);
String realPath = "";
try {
realPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath(xsdPath);
} catch (Exception e) {
String path = XmlUtil.class.getClassLoader().getResource("").getPath().replaceAll("classes/", "");
path = path.concat(xsdPath).concat(rootVersion).concat("/").concat(rootElement).concat(".xsd");
File teste = new File(path);
if (teste.exists()) {
System.out.println("found");
}
return path.concat ("/").concat(rootVersion).concat("/").concat(rootElement).concat(".xsd");
}
return realPath.concat("\\").concat(rootVersion).concat("\\").concat(rootElement).concat(".xsd");
}
答案 0 :(得分:0)
public static String xsdFile(File file) {
String rootElement = getRootElement(file);
String rootVersion = getVersion(file);
String realPath = "";
try {
realPath = getHTTPpath();
} catch (Exception e) {
return getMachinePath(rootVersion, rootElement).concat(".xsd");
}
return realPath.concat("\\").concat(rootVersion).concat("\\").concat(rootElement).concat(".xsd");
}
private static String getHTTPpath() throws Exception {
return FacesContext.getCurrentInstance().getExternalContext().getRealPath(xsdPath);
}
private static String getMachinePath(String rootVersion, String rootElement) {
String realPath = XmlUtil.class.getClassLoader().getResource("").getPath();
try {
realPath = URLDecoder.decode(realPath, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
realPath = realPath.substring(1).replace("/WEB-INF/classes", "");
return realPath.concat("resources/xsd/" + rootVersion + "/" + rootElement);
}