flutter_file_manager
一组实用工具,可帮助管理 Android 系统中的文件和目录。
您正在创建文件管理器应用或图库应用。
用法
要使用此软件包,请在您的pubspec.yaml文件中添加这些
依赖项。
dependencies:
flutter:
sdk: flutter
path: 1.6.2
path_provider: 0.5.0+1
flutter_file_manager: ^0.1.1
并在您的
android/app/src/main/AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
不要忘记手动或通过此插件为您的应用授予存储权限 simple_permissions
// framework
import 'package:flutter/material.dart';
// packages
import 'package:flutter_file_manager/flutter_file_manager.dart';
import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart' as p;
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("Flutter File Manager Demo"),
),
body: FutureBuilder(
future: _files(), // a previously-obtained Future<String> or null
builder: (BuildContext context, AsyncSnapshot snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.none:
return Text('Press button to start.');
case ConnectionState.active:
case ConnectionState.waiting:
return Text('Awaiting result...');
case ConnectionState.done:
if (snapshot.hasError)
return Text('Error: ${snapshot.error}');
return snapshot.data != null
? ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (context, index) => Card(
child: ListTile(
title: Text(snapshot.data[index].absolute.path),
subtitle: Text(
"Extension: ${p.extension(snapshot.data[index].absolute.path).replaceFirst('.', '')}"), // getting extension
)))
: Center(
child: Text("Nothing!"),
);
}
return null; // unreachable
},
)),
);
}
_files() async {
var root = await getExternalStorageDirectory();
var fm = FileManager(root: root);
var files = await fm.filesTree(excludedPaths: ["/storage/emulated/0/Android"]);
return files;
}
}
示例
特点
- 文件详细信息
- 搜索文件或目录:支持正则表达式
- 最近创建的文件:您可以从树中排除目录列表
- 仅目录树:您可以从树中排除目录列表
- 仅文件树:您可以从树中排除目录列表
- 从特定点列出文件
- 删除文件
- 删除目录
- 临时文件
- 按类型、大小、日期等排序文件。