List<String> path = Arrays.asList(Paths.get("").toAbsolutePath().toString().split("\\\\"));
System.out.println(path);
int removeJavaFile = path.size() - 1;
path.remove(removeJavaFile);
String filePath = path.stream().map(n -> String.valueOf(n)).collect(Collectors.joining("\\\\"));
System.out.println(filePath);

我试图获取我的程序所在的目录,但最终使用它来获取文件的路径.我想要获取路径,然后拆分它,以便稍后从路径中删除文件名以获取目录,但失败了,尽管使用了.remove()方法.有谁能帮帮我吗?

推荐答案

TL;DR

pathToFile.getParent()

路径#getParent

不需要求助于原始的弦操作.Java NIO将我们从特定于平台的细节中抽象出来.

调用路径#getParent以获取另一个路径对象,同时删除原始路径的最后一个元素.

Path pathToFile = Paths.get( "SomeFolder" , "SomeFile" ) ;
Path pathToFolder = pathToFile.getParent() ;

List#emoveLast

顺便说一句,为了回答你的问题,…

在Java 21+中,ListSequencedCollection的子接口.这带来了方便的新方法,如removeLast.

myList.removeLast() ;

Java相关问答推荐

如何在Docker容器中使用wireock—Webhooks阻止请求?

Java:根据4象限中添加的行数均匀分布行的公式

Javascript更新alert 可扩展内容样式与CSS—按钮更多/更少

为什么我们不能实现两个接口,其中一个接口有相同的签名,其中一个接口有默认的实现在java?'

ApachePOI:不带换行的新行

将数组整体转换为链接表

XPages-在第二次点击按钮之前延迟

使用@MappdSuperClass扩展ParentClass&Won t继承ParentClass属性

对Java中的通配符参数的混淆

在Spring Boot中使用哪个Java类来存储创建时间戳?

如何让JavaFx应用程序识别依赖项?

声明MessageChannel Bean的首选方式

如何仅使用键/ID的一部分(组合)高效地返回映射值?

对从Spring Boot 3.1.5升级到3.2.0的方法的查询验证失败

项目react 堆中doOnComplete()和Subscribe()的第三个参数之间的差异

何时调用密封层次 struct 的switch 中的默认情况

在Oracle中调用输出参数在索引处缺少IN或OUT参数的函数

在输入端没有可行的替代方案'; Select *';

";重复键的值提示唯一约束«;livre_genre_pkey»";例外

带有提取器的JavaFXObservableList会根据侦听器的存在而改变行为