CommunityToolkit.Maui.FileSaver未生效initialPath参数问题咨询
FileSaver 保存对话框路径不更新问题
我使用FileSaver实现“另存为”功能,首次使用一切正常,可选择文件夹并保存文件。但调试模式下第二次调用时,将代码里的dname修改为另一个已存在的文件夹:
string dname = dirname; // 调试时修改dname的值 var fileSaverResult = await FileSaver.Default.SaveAsync(dname, fileName, stream, ct); if (fileSaverResult.IsSuccessful) { // ... }
打开的对话框却仍显示之前选择的文件夹。使用的工具包版本为5.0.0,Visual Studio 2022版本17.5.3,系统为Windows 10.0.19045 Build 19045。
原因及解决方法
- FileSaver路径缓存:FileSaver 5.x版本可能会缓存上次打开对话框的路径,优先使用缓存而非传入的
dname参数。可以尝试用带配置项的重载显式指定初始目录:
var options = new FileSaverOptions { InitialDirectory = dname }; var fileSaverResult = await FileSaver.Default.SaveAsync(fileName, stream, options, ct);
调试变量未生效:确认调试时修改的
dname实际值已更新,可通过调试器查看变量值,确保传入的是目标文件夹路径而非旧值。系统对话框记忆:Windows“另存为”对话框本身会记忆最近使用的路径,若上述方法无效,可重启应用后再测试,排除系统缓存影响。
版本bug:FileSaver 5.0.0可能存在该路径缓存的bug,建议升级到最新版本,查看是否已修复该问题。
内容的提问来源于stack exchange,提问作者user7399085
相关产品推荐
相关产品推荐

