Я сохраняю файл Multipart и использую класс Path
java.nio.file.Path
. И в этом Path
Я получаю путь C:\for\expample\
, но мне нужен путь, подобный этому 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");
}
}