如何使用较低 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
的函数.toAbsolutePath
和Paths.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()
的内容已经是硬编码的绝对值。使用Environment
和File.getAbsolutePath()
得到你想要的。我工作:)以上是关于如何使用较低 API 的 java.nio 中的 toAbsolutePath 和 Paths.get的主要内容,如果未能解决你的问题,请参考以下文章