[英]How to replace backSlash (\) with the forwardSlash(/) in `java.nio.file.Path`?
I am saving the Multipart file and I am using the Path
class Of java.nio.file.Path
in this Path
I am getting the path C:\for\expample\
but I need the path like this C:/for/expample/
. 在这里,我分享了我尝试过的代码,但不幸的是,我没有得到带有正斜杠的真实路径。
public String saveFile(MultipartFile theFile, String rootPath, String filePath , String fileNme) throws Exception {
try {
Path fPath = null;
if(theFile != null) {
Path path = Paths.get(rootPath, filePath);
if(Files.notExists(path)) {
//Create directory if one does not exists
Files.createDirectories(path);
}
String fileName;
//Create a new file at that location
if(fileNme == "") {
fileName = theFile.getOriginalFilename();
}else {
fileName = fileNme;
}
fPath = Paths.get(rootPath, filePath, fileName);
if(Files.isRegularFile(fPath) && Files.exists(fPath)) {
Files.delete(fPath);
}
StringWriter writer = new StringWriter();
IOUtils.copy(theFile.getInputStream(), writer, StandardCharsets.UTF_8);
File newFile = new File(fPath.toString());
newFile.createNewFile();
try (OutputStream os = Files.newOutputStream(fPath)) {
os.write(theFile.getBytes());
}
}
return this.replaceBackslashes(fPath == null ? "" :fPath.normalize().toString());
}catch (IOException e) {
e.printStackTrace();
throw new Exception("Error while storing the file");
}
}
尝试
return fPath == null ? "" : fPath.normalize().toString().replace("\\","/");
将完整路径转换为字符串并使用正则表达式,例如
String str = fPath.toString();
str = str.replace("\\", "/");
给定Path
object 具有C:\\aaaa\\bbbb
,只需将所有双黑斜杠替换为正斜杠
path.toString().replaceAll("\\\\", "/");
Output: C:/aaaa/bbbb
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.