在Java中获取路径目录并且丢弃文件

10

我们如何从Java字符串中实际丢弃最后一个文件并仅获取文件路径目录?

用户输入的随机路径:

C:/my folder/tree/apple.exe

期望的输出:

C:/my folder/tree/

我找到的最接近的解决方案来自这里。这个论坛上的答案只显示获得的最后一个字符串,而不是其余的字符串。我想要显示其余的字符串。

2个回答

36

最简单、最可靠(即跨平台)的解决方案是从路径创建一个 File 对象。

就像这样:

File myFile = new File( "C:/my folder/tree/apple.exe" );
// Now get the path
String myDir = myFile.getParent();

4
可以使用getParentFile()代替getParent(),这样可以得到一个文件对象而不是一个字符串。 - nicomp
请查看类似问题 https://dev59.com/t14b5IYBdhLWcg3w309A - RenatoIvancic

4
尝试一下:
String path = "C:/my folder/tree/apple.exe";
path = path.substring(0, path.lastIndexOf("/")+1);

请注意,分隔符不保证为正斜杠。 - Konstantin Pribluda
在我看来,不创建文件要好得多。特别是如果该文件实际上不存在(尚未存在)。对我的需求完美地起作用。 - Andrew McOlash
通过创建File对象并不是在“制作文件”。它只是java.io函数的容器。 - mvreijn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接