Flutter Desktop - flutter-desktop-embedding 如何将文件保存到硬盘
Posted
技术标签:
【中文标题】Flutter Desktop - flutter-desktop-embedding 如何将文件保存到硬盘【英文标题】:Flutter Desktop - flutter-desktop-embedding how to save file to a hard drive 【发布时间】:2020-01-04 13:23:52 【问题描述】:我在 Flutter 桌面上工作了一段时间,实施过程中一切顺利。到目前为止,我只实现了 UI、网络和内存缓存。现在我开始面临一个我无法找到解决方案的真正问题。是否有一些开箱即用的可能性将文件保存到硬盘驱动器?我必须处理包含 PDF 文件的 base64 并将其放在硬盘上的某个位置。我是否应该使用为移动设备准备的功能,或者这在 Flutter for desktop 中更复杂,我必须为平台实现适当的功能并将其公开给 Flutter?如果这有任何改变,我主要针对 Windows 生态系统。我想到的唯一另一个解决方案是准备 bash/power-shell 脚本来为我执行此操作,但希望我不需要这样做:)
编辑
我在这里遇到的主要问题是我想检索用户文件夹的路径。有人知道怎么做吗?
【问题讨论】:
您在保存文件的哪个方面特别有问题?例如,File.write*
内置在 Dart 中。问题在于决定将其保存在哪里(即,您是否想要 path_provider
或 FDE file_chooser
插件之类的东西)?
@smorgan 是的,问题在于提供用户目录的路径
【参考方案1】:
最好的方法是使用平台频道。 flutter-desktop-embedding 项目托管desktop implementations of several flutter/plugins plugins,虽然path_provider
不是最新的,但它肯定可以添加(已经有一个 macOS 实现的 PR)。然后,您可以像在移动设备上一样使用getApplicationDocumentsDirectory()
。
或者,您可以查看是否有环境变量可以为您提供所需的数据,因为 Dart 已经可以访问它们,但跨操作系统版本/配置可能不那么可靠。
【讨论】:
以上是关于Flutter Desktop - flutter-desktop-embedding 如何将文件保存到硬盘的主要内容,如果未能解决你的问题,请参考以下文章
Flutter macOS Desktop 项目发布神器位置