Android 31 获取本地储存路径代码
时间: 2023-11-10 12:17:59 浏览: 106
获取本地存储路径的代码如下:
```java
String localPath = getApplicationContext().getFilesDir().getAbsolutePath();
```
其中,`getFilesDir()`方法会返回当前应用程序的数据目录,`getAbsolutePath()`方法会返回该目录的绝对路径。如果你需要访问公共存储区域,可以使用以下代码:
```java
String publicPath = Environment.getExternalStorageDirectory().getAbsolutePath();
```
其中,`getExternalStorageDirectory()`方法会返回公共存储区域的根目录,`getAbsolutePath()`方法会返回该目录的绝对路径。请注意,访问公共存储区域需要相应的权限声明和运行时权限请求。
相关问题
uniapp 原生api获取本地文件路径
UniApp是一个跨平台的框架,它允许开发者编写一套代码同时构建iOS、Android以及Web应用。在UniApp中,获取本地文件路径通常通过调用原生API来实现,因为这涉及到操作系统的文件系统权限。
在UniApp中,你可以使用`uni.getStorageSync`或`uni.saveFileToStorage`这两个方法来处理本地文件。如果你需要获取某个已存在文件的路径,可以先读取到缓存(`uni.getStorageSync`),然后获得返回的文件路径:
```javascript
uni.login({ success: function (res) {
if (res.code === 'getSetting:success') {
// 获取到用户授权后,假设你想获取图片库中的照片
uni.showActionSheet({
itemList: ['选择图片'],
success: function (res) {
if (res.tapIndex === 0) {
uni.chooseImage({
count: 1, // 可选,默认9
sizeType: ['original', 'compressed'], // 可选,默认['original']
sourceType: ['album', 'camera'], // 可选, 默认['album']
success: function (res) {
let filePath = res.tempFilePaths[0]; // 返回的是临时文件路径
// 使用uni.getStorageSync将临时路径保存到本地,获取完整路径
uni.getStorageSync(filePath, {
key: 'fileKey',
success: function (localPath) {
console.log('本地文件路径:', localPath);
}
});
}
});
}
}
});
}
}})
```
写一段android 把接口返回的文件流保存到本地并于保存完成打开文件所在路径的文件夹的代码
好的,以下是一个简单的实现示例:
```java
public void saveFile(InputStream inputStream, String fileName) {
try {
// 获取文件保存路径
File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
if (!dir.exists()) {
dir.mkdirs();
}
// 创建文件输出流
File file = new File(dir, fileName);
FileOutputStream outputStream = new FileOutputStream(file);
// 缓冲区
byte[] buffer = new byte[1024];
int len;
// 将输入流写入文件输出流中
while ((len = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len);
}
// 关闭输入输出流
inputStream.close();
outputStream.close();
// 打开文件所在路径的文件夹
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse("file://" + dir.getAbsolutePath());
intent.setDataAndType(uri, "*/*");
startActivity(intent);
} catch (IOException e) {
e.printStackTrace();
}
}
```
这段代码将通过输入流将接口返回的文件流保存到本地的 Downloads 文件夹中,并打开文件所在路径的文件夹。注意,需要在 AndroidManifest.xml 文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
阅读全文