给定这样的文件路径: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系统中均可以使用。还有其他正确的解决方案吗?谢谢。
2 回答
![?](http://img1.sycdn.imooc.com/5333a1bc00014e8302000200-100-100.jpg)
幕布斯6054654
TA贡献1876条经验 获得超7个赞
您可以使用java.nio中的getParent()方法Path,它将Path对文件所需的工作,并向包含文件Path的文件夹返回a 。如果给定的Path是文件夹,则它返回父文件夹;如果没有父文件夹,则返回null。
Path dirPath = filePath.getParent();
你的方法应该看起来像
private Path asDirectoryPath(Path filePath) {
return Paths.get(filePath.getParent());
}
添加回答
举报
0/150
提交
取消