flutter getExternalStorageDirectory
时间: 2025-06-29 07:14:37 浏览: 8
### 如何在 Flutter 中使用 `getExternalStorageDirectory`
为了访问外部存储目录,在 Flutter 应用程序中可以利用 `path_provider` 插件来获取路径。此插件提供了便捷的方法用于检索常见文件系统的路径。
#### 添加依赖
首先,需更新项目的 `pubspec.yaml` 文件以包含 `path_provider` 的依赖:
```yaml
dependencies:
flutter:
sdk: flutter
path_provider: ^2.0.11
```
安装完成后,记得执行 `flutter pub get` 命令刷新项目依赖项[^1]。
#### 获取外部存储目录
下面是一个简单的例子展示如何调用 `getExternalStorageDirectory()` 方法并打印返回的结果:
```dart
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart' as syspaths;
import 'dart:io';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('Get External Storage Directory Example')),
body: Center(child: GetExternalDirButton()),
),
);
}
}
class GetExternalDirButton extends StatefulWidget {
@statefulStatelessWidgetOverride
_GetExternalDirButtonState createState() => _GetExternalDirButtonState();
}
class _GetExternalDirButtonState extends State<GetExternalDirButton> {
String? _externalPath;
void _getExternalStorageDir() async {
try {
final externalDir = await syspaths.getExternalStorageDirectory();
setState(() {
if (externalDir != null) {
_externalPath = externalDir.path;
} else {
_externalPath = "无法获取外部存储位置";
}
});
} catch (error) {
print(error);
setState(() {
_externalPath = "发生错误: $error";
});
}
}
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(onPressed: () {_getExternalStorageDir();}, child: Text('点击获取外部存储路径')),
SizedBox(height: 20),
Text(_externalPath ?? ''),
],
);
}
}
```
这段代码创建了一个按钮,当按下它时会尝试获取设备上的公共外部存储空间的位置,并显示出来。如果成功,则显示完整的路径;如果有任何异常情况则给出相应的提示信息。
阅读全文
相关推荐
















