假设有以下文件路径:
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系统中都能工作。是否有更正确的解决方案?谢谢。