path_provider
是Flutter中用于访问设备文件系统路径的插件
- 首先,确保在
pubspec.yaml
文件中添加了path_provider
的依赖。在dependencies
部分添加以下代码:
dependencies: flutter: sdk: flutter path_provider: ^2.0.11 - 然后,导入
path_provider
插件:
import 'package:path_provider/path_provider.dart'; - 在代码中使用
path_provider
获取路径:- 获取应用内部存储目录:
import 'dart:io'; Future<Directory> getApplicationDocumentsDirectory() async { Directory appDocumentsDirectory = await getApplicationDocumentsDirectory(); return appDocumentsDirectory; }
- 获取外部存储目录:
Future<Directory> getExternalStorageDirectory() async { Directory externalStorageDirectory = await getExternalStorageDirectory(); return externalStorageDirectory; }
- 使用获取到的路径:
void main() async { // 获取内部存储目录 Directory appDocumentsDirectory = await getApplicationDocumentsDirectory(); String appDocumentsPath = appDocumentsDirectory.path; // 获取外部存储目录 Directory externalStorageDirectory = await getExternalStorageDirectory(); String externalStoragePath = externalStorageDirectory.path; print('内部存储目录:$appDocumentsPath'); print('外部存储目录:$externalStoragePath'); }
请注意,从Android 10(API级别29)开始,访问外部存储的方式发生了变化。现在,您应该使用分区存储或媒体存储API。path_provider
插件会自动处理这些变化。
在使用path_provider
时,请确保在AndroidManifest.xml
文件中添加了必要的权限。对于内部存储,无需任何权限。对于外部存储,需要在AndroidManifest.xml
中添加以下权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
并在运行时请求这些权限。具体请参考官方文档。