繁体   English   中英

如何用`java.nio.file.Path`中的forwardSlash(/)替换backSlash(\)?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM