在java中获取绝对路径的最后一个元素是否更好?

洪阮

我有很多这样D:\just\a\path的字符串,字符串的元素数量可能不同,也许C:\just\another\longer\path.

我想得到最后一个元素path我尝试使用substring

myString.substring(myString.lastIndexOf("/")+1)

Path

nameo1 = Paths.get(string).getName(Paths.get(string).getNameCount() -1); //-1 because of root

但第二种方法似乎不适用于所有操作系统。

我的问题是:有没有更好、更优雅的方法来获得我想要的东西?

注意:最后一个元素是目录、文件夹,而不是文件。所以new File(string).getName()不会工作,只是什么都不返回。

编辑:这是我的错。有时字符串是空的,所以它什么都不返回。花了我一个小时来处理它。Edit2:某些文件路径包含空格,因此此方法返回一个空字符串

德哈尔

您可以(现在应该)使用java.nio.file.Path.getFileName(),它对于文件或目录的路径是这样工作的(无论String结尾是否以反斜杠结尾):

public static void main(String[] args) {
    String pathStringToAFile = "U:\\temp\\TestOutput\\TestFolder\\test_file.txt";
    String pathStringToAFolder = "U:\\temp\\TestOutput\\TestFolder";
    String pathStringToAFolderWithTrailingBackslash = "U:\\temp\\TestOutput\\TestFolder\\";

    Path pathToAFile = Paths.get(pathStringToAFile);
    Path pathToAFolder = Paths.get(pathStringToAFolder);
    Path pathToAFolderWithTrailingBackslash 
                        = Paths.get(pathStringToAFolderWithTrailingBackslash);

    System.out.println(pathToAFile.getFileName().toString());
    System.out.println(pathToAFolder.getFileName().toString());
    System.out.println(pathToAFolderWithTrailingBackslash.getFileName().toString());
}

这输出

test_file.txt
TestFolder
TestFolder

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何流式地图<路径,名单<路径>>到一个List <String>的包含的绝对路径字符串?

在Java中绝对路径打开文件

如何从FileDialog获取绝对路径?

如何用两个绝对路径(或URL)在Java中构造一个相对路径?

如何从InputStream获取Java文件的绝对路径?

获取Eclipse中当前编辑文件的绝对路径

Java中项目文件夹的绝对路径

如何从SWT中的FileDialog获取文件的绝对路径?

如何在不指定绝对路径的情况下从另一个Java包中读取文件(例如txt文件)?

获取java中URL的绝对路径

如何在Java中获取文件的绝对路径

从PathBuf获取绝对路径

从Node.js中的另一个绝对路径中减去一个绝对路径

从另一个位置运行时如何在Linux上获取绝对路径

是否有Bazel命令行来确定一个或多个给定标签的输出的绝对路径?

如何使用pathlib在Python中获取两个绝对路径之间的相对路径?

如何在PowerShell中基于相对路径或绝对路径获取绝对路径?

从一个绝对值和一个相对值获得绝对路径

Maven的dependency.systemPath必须指定一个绝对路径

必须指定一个绝对路径的行家

如何在Java中获取绝对路径

获取Java中“ Web内容”文件夹的绝对路径

获取文件的绝对路径

从webkitdirectory元素获取绝对路径

使用JavaScript在MVC中获取文件的绝对路径

在bash中,是否有内置命令来获取相对文件路径的绝对路径?

一个字符串或脚本中命令的绝对路径变量和别名?

odoo 错误:安装脚本指定了一个绝对路径

如何在flutter中获取文件的绝对路径