如何使用较低 API 的 java.nio 中的 toAbsolutePath 和 Paths.get

Posted

技术标签:

【中文标题】如何使用较低 API 的 java.nio 中的 toAbsolutePath 和 Paths.get【英文标题】:How to use toAbsolutePath and Paths.get from java.nio with lower API 【发布时间】:2019-12-13 18:44:54 【问题描述】:

我有一个应用程序需要在电子邮件中发送多个图像附件。要发送图像,我需要一个绝对路径。为此,我使用来自java.nio 的函数.toAbsolutePathPaths.get。这两个函数仅适用于API 26 及更高版本。在我看来,它们就像是非常基本的功能,所以我不知道为什么它们不支持较低的 API。有什么方法可以让他们使用较低的APIs

realPath1 = Paths.get("storage/emulated/0/android/data/com.example.abbmalfunctionreport/cache/$image1").toAbsolutePath()

【问题讨论】:

如果你在传递给Paths.get()的值前面加上/,那就是绝对路径。 不幸的是,Paths.get() 也有最少的 API 26。 不,我的意思是你已经有了绝对路径,所以Paths.get()是不必要的。 是的。 /storage/emulated/0/.../ 是绝对的。 哦,好的。谢谢。 【参考方案1】:

File.getAbsolutePath() 从 API-1 开始可用。

您可能也应该使用Environment 类,请参阅How to get absolute path of Internal Storage in Android

【讨论】:

File.getAbsolutePath() 对我不起作用。我无法解释为什么,但它在发送电子邮件时卡住了。我认为输出与之前的代码不同。 您传递给Paths.get() 的内容已经是硬编码的绝对值。使用EnvironmentFile.getAbsolutePath() 得到你想要的。我工作:)

以上是关于如何使用较低 API 的 java.nio 中的 toAbsolutePath 和 Paths.get的主要内容,如果未能解决你的问题,请参考以下文章

1. Netty准备知识:Java NIO

java NIO

Java NIO系列教程 Java NIO与IO

Java NIO:NIO概述

Java NIO2 File API介绍

Java NIO系列教程 Java NIO与IO