You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Okio访问应用、工作及临时目录等通用默认路径?

使用Okio访问通用默认路径的方案

1. 临时目录

你找到的FileSystem.SYSTEM_TEMPORARY_DIRECTORY是正确且最优的实现方式。这是Okio官方提供的跨平台标准API,会自动适配不同操作系统的临时目录规则(比如Windows的%TEMP%、Linux/macOS的/tmp),无需手动处理平台差异,属于稳定的推荐用法。

2. 工作目录

通过FileSystem获取工作目录是可靠且稳定的方案,并非临时实现。可以直接调用FileSystem.SYSTEM.currentWorkingDirectory()方法,该方法返回的是当前进程启动时的工作目录路径,与操作系统层面的工作目录完全一致,是Okio官方提供的标准API。

3. 应用目录(可执行文件所在位置)

Okio本身没有提供直接获取该路径的API,需要结合对应平台的原生代码实现:

  • Windows:通过JNI调用GetModuleFileNameW获取可执行文件的绝对路径,再封装为Okio的Path对象
  • Linux:读取/proc/self/exe符号链接获取可执行文件路径,转换为Okio的Path
  • macOS:调用_NSGetExecutablePath函数获取可执行文件路径,再转为Okio的Path
  • Android:通过Context.getApplicationInfo().sourceDir获取APK所在路径,再转换为Okio的Path

关于用户目录的推测验证

你的推测完全正确。由于不同平台(尤其是Android)对“用户目录”的定义差异极大(比如Android没有传统桌面系统的用户主目录概念,只有应用私有存储、外部存储等分区),Okio为了保持API的简洁性和跨平台一致性,没有提供统一的用户目录API。若需获取这类路径,必须对接对应平台的原生API实现。

内容的提问来源于stack exchange,提问作者Rohde Fischer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 11:01:01