猿问

如何在`java.nio.file.Path`中用forwardSlash(/)替换

我正在保存多部分文件,并且正在使用类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");

        }

    }


MYYA
浏览 138回答 3
3回答

慕的地6264312

尝试return fPath == null ? "" : fPath.normalize().toString().replace("\\","/");

狐的传说

给定一个Path具有 的对象C:\\aaaa\\bbbb,只需将所有双黑斜杠替换为正斜杠path.toString().replaceAll("\\\\", "/");输出:C:/aaaa/bbbb

缥缈止盈

将完整路径转换为字符串并使用正则表达式,例如String str = fPath.toString(); str = str.replace("\\", "/");
随时随地看视频慕课网APP

相关分类

Java
我要回答