Maui SaveAsync 写入的文本文件始终为空

问题描述 投票:0回答:1

我已经安装了 Community.Toolkit.Maui NuGet 包 并且我在使用 SaveAsync 方法时遇到问题。 当我 单击我页面的“保存文件”按钮,它会触发 onSaveFileClicked 方法 如下所示。 该方法调用 SaveAsync,它确实提示我输入 文件的名称和位置,并在该文件夹中创建文件, 但文件总是空的。

目前我只在 Windows 上运行它(即,不模拟 iOS或安卓)

这是我的主页(出于测试目的,我已硬编码 文件内容只是“Hello world”)


using CommunityToolkit.Maui.Storage;
using System.Collections;
using System.Diagnostics;
using System.Text;

namespace PrizesCalculator {
    public partial class MainPage : ContentPage {
        IFileSaver fileSaver;
        CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
        public MainPage(IFileSaver fileSaver) {
            InitializeComponent();
            this.fileSaver = fileSaver;
        }
        ... other stuff here

        private void OnSaveFileClicked(object sender, EventArgs e)  {
             using var stream = new MemoryStream(Encoding.Default.GetBytes("hello world"));
             fileSaver.SaveAsync("PrizeDistribution.csv", stream, cancellationTokenSource.Token);
        }
    }
}

在 Stackoverflow 和其他网站上搜索但没有找到任何东西。

file stream maui
1个回答
0
投票

您可以尝试以下代码,它在我这边有效。

        private async void OnSaveFileClicked(object sender, EventArgs e)
        {
            using var stream = new MemoryStream(Encoding.Default.GetBytes("hello world"));
            //fileSaver.SaveAsync("PrizeDistribution.csv", stream, cancellationTokenSource.Token);

            var fileSaverResult = await fileSaver.SaveAsync("PrizeDistribution.csv", stream, cancellationTokenSource.Token);
            fileSaverResult.EnsureSuccess();
            await Toast.Make($"File is saved: {fileSaverResult.FilePath}").Show(cancellationTokenSource.Token);

        }
© www.soinside.com 2019 - 2024. All rights reserved.