当UWP应用关闭时,使用TextBox中的数据写入.txt文件

时间:2019-08-03 06:34:22

标签: c# uwp windows-10 win-universal-app windows-10-universal

当用户关闭应用程序时,我相信在终止之前会先调用App.xaml.cs中的OnSuspending方法。因此,我将代码放在此处,以便将用户在TextBox中编写的内容自动保存到名为TextFile1.txt的.txt文件中。该程序可以正常运行,但是在关闭应用程序后不会将用户数据保存到.txt文件中。

App.xaml.cs 中的代码:

private MainPage mainFrame;

    private async void OnSuspending(object sender, SuspendingEventArgs e)
    {
        var deferral = e.SuspendingOperation.GetDeferral();
        await WriteTextToFile();
        deferral.Complete();
    }

    private async Task WriteTextToFile()
    {
        try
        {
            string text = mainFrame.mainTextBox.Text;
            StorageFile textFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///TextFile1.txt"));
            await FileIO.WriteTextAsync(textFile, text);
        }
        catch
        {

        }
    }

MainPage.xaml.cs 中的代码:

public sealed partial class MainPage : Page
{
        public TextBox mainTextBox => textBox;
        public static MainPage rootPage;
        public MainPage()
        {
            InitializeComponent();
            if (rootPage != null)
            {
                rootPage = this;
            }
        }
}

1 个答案:

答案 0 :(得分:2)

您的代码失败,因为它尝试写入应用程序的安装文件夹。该文件夹受到保护,以确保安装的完整性。

要使您的方案起作用,请改为将文本文件写入AppData位置。 https://docs.microsoft.com/en-us/windows/uwp/design/app-settings/store-and-retrieve-app-data