Java文件路径作为目录路径

给定这样的文件路径:


Path filePath; // "/Users/me/Desktop/archive.zip"

我想要一个函数,通过删除其文件扩展名将此文件路径转换为目录路径,并将文件路径视为目录路径。例如:


Path dirPath = asDirectoryPath(filePath); // "/Users/me/Desktop/archive"

我尝试了什么?


好吧,我有一个解决方案,我认为这很丑陋:


private Path asDirectoryPath(Path filePath)

{

    return Paths.get(path.toString().substring(0, path.toString().lastIndexOf('.')));

}

为什么丑陋?因为我被迫执行路径进行字符串转换并搜索“。”。符号,假设以下字符是文件扩展名。此功能应该是可移植的,并且应该在Windows和UNIX系统中均可以使用。还有其他正确的解决方案吗?谢谢。


慕哥6287543
浏览 194回答 2
2回答

幕布斯6054654

您可以使用java.nio中的getParent()方法Path,它将Path对文件所需的工作,并向包含文件Path的文件夹返回a 。如果给定的Path是文件夹,则它返回父文件夹;如果没有父文件夹,则返回null。Path dirPath = filePath.getParent();你的方法应该看起来像private Path asDirectoryPath(Path filePath) {    return Paths.get(filePath.getParent());}

茅侃侃

正则表达式可在此处与split方法一起使用。path.toString().split("\\.")[0])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java