有没有办法调用本机文件资源管理器并获取选定的目录路径?
9rnv2umw1#
我也在寻找同样的东西,但找不到UI类型的插件,所以我构建了一个页面,或多或少是一个文件资源管理器。我利用flutter_file_manager插件获得所需目录中的文件列表,然后通过ListView.builder将(未来)列表返回到一系列ListTile中。
List<FileSystemEntity> _fileList; Future<void> _loadFiles() async { _loadingFiles = true; var root = await getExternalStorageDirectory(); _fileList = await FileManager(root: root).walk().toList(); _loadingFiles = false; this.setState(() {}); }
字符串一旦你有了_fileList对象,你就可以做任何你想做的事情了。例如,我在我的AppBar中添加了一个PopupMenuButton,在那里我允许文件删除,打开等。对于_fileList列表中的每个项目,您还可以在ListTile中显示文件名,大小,修改日期等。
lokaqttq2#
我没有找到一个官方的方法来做,所以我用了另外一种方法。我使用了库“path_provider“,通过“Directory”方法,例如通过“directory.list”方法获取目录中的文件。这样,你就可以遍历所有的目录和文件。然后写一个页面来显示目录,从而达到原生文件浏览的效果。还有,别忘了权限
_getSDCardDirectory() async { Directory directory = await getExternalStorageDirectory(); print(directory.path); await directory.list().toList().then((filesList) => print(filesList)); print(directory.parent.path); }
字符串
mec1mxoz3#
在Kotlin/ java中编写一个方法,并通过MethodChannels从flutter调用它。如下所示启动本机文件管理器。
startActivity(new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS));
字符串参考下面的链接,了解更多关于MethodChannels的信息
mrfwxfqh4#
您可以尝试插件filesystem_picker,它支持移动的和桌面平台,并且在其最新的2.0+版本中支持nullsafety
import 'package:filesystem_picker/filesystem_picker.dart'; import 'dart:io'; import 'package:path_provider/path_provider.dart'; Directory rootPath = await getTemporaryDirectory(); String? path = await FilesystemPicker.open(title: 'Save to folder', context: context, rootDirectory: rootPath, fsType: FilesystemType.folder, pickText: 'Save file to this folder', folderIconColor: Colors.teal, );
8aqjt8rx5#
使用下面的代码。不需要软件包
import 'dart:io'; void openDirectory(String path) { Process.run( "explorer", [path], workingDirectory: path, ); }
字符串这段代码执行一个shell命令(打开windows上的文件浏览器)。这将使您能够打开您想要的文件夹
5条答案
按热度按时间9rnv2umw1#
我也在寻找同样的东西,但找不到UI类型的插件,所以我构建了一个页面,或多或少是一个文件资源管理器。我利用flutter_file_manager插件获得所需目录中的文件列表,然后通过ListView.builder将(未来)列表返回到一系列ListTile中。
字符串
一旦你有了_fileList对象,你就可以做任何你想做的事情了。例如,我在我的AppBar中添加了一个PopupMenuButton,在那里我允许文件删除,打开等。
对于_fileList列表中的每个项目,您还可以在ListTile中显示文件名,大小,修改日期等。
lokaqttq2#
我没有找到一个官方的方法来做,所以我用了另外一种方法。我使用了库“path_provider“,通过“Directory”方法,例如通过“directory.list”方法获取目录中的文件。这样,你就可以遍历所有的目录和文件。然后写一个页面来显示目录,从而达到原生文件浏览的效果。还有,别忘了权限
字符串
mec1mxoz3#
在Kotlin/ java中编写一个方法,并通过MethodChannels从flutter调用它。如下所示启动本机文件管理器。
字符串
参考下面的链接,了解更多关于MethodChannels的信息
mrfwxfqh4#
您可以尝试插件filesystem_picker,它支持移动的和桌面平台,并且在其最新的2.0+版本中支持nullsafety
字符串
8aqjt8rx5#
使用下面的代码。不需要软件包
字符串
这段代码执行一个shell命令(打开windows上的文件浏览器)。这将使您能够打开您想要的文件夹