C#windows 8 app创建文件

时间:2013-06-06 22:03:34

标签: c# windows-8 windows-store-apps winrt-xaml

我正在尝试创建一个文件,然后写入该文件并从中读取...有点像我的应用程序每次加载时加载的设置。为什么这对我不起作用?我正在运行visual studio 2012,我认为当我在那里运行程序时,应该在项目的文件夹中创建文件...我的方法是异步和无效...真的不知道发生了什么哈哈

 StorageFile sampleFile = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFileAsync("config.txt", CreationCollisionOption.ReplaceExisting);

如何在本地文件夹中创建它?所以每次程序运行时,无论在什么计算机上它都会创建文件并在用户关闭并重新打开程序时加载它?

2 个答案:

答案 0 :(得分:1)

伙计,好问题!

以下是您要求的确切逻辑:

public class MyData
{
    public string Title { get; set; }
}

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();
    }

    protected async override void OnNavigatedTo(NavigationEventArgs e)
    {
        this.DataContext = await LoadData();
    }

    protected override void OnNavigatedFrom(NavigationEventArgs e)
    {
        SaveData(this.DataContext as MyData);
        base.OnNavigatedFrom(e);
    }

    private async Task<MyData> LoadData()
    {
        var _Data = await StorageHelper.ReadFileAsync<MyData>(
            this.GetType().ToString(), StorageHelper.StorageStrategies.Local);
        return _Data ?? new MyData() { Title = "Welcome" };
    }

    private async void SaveData(MyData data)
    {
        await StorageHelper.WriteFileAsync(
            this.GetType().ToString(), data, StorageHelper.StorageStrategies.Local);
    }
}

可以找到StorageHelper类here。或在我的博客上http://jerrynixon.com

祝你好运!

答案 1 :(得分:0)

  

如何在本地文件夹中创建它?

你不能,无论如何你不应该...... Windows商店应用程序在沙盒中运行,他们对文件系统的访问权限非常有限。基本上,您可以访问:

  • 您的应用LocalFolder安装文件夹)和RoamingFolder
  • 文档库,图片库,音乐库等,具体取决于您应用的功能(在应用清单中声明)
  • 用户使用文件选择器选择的文件

我认为就是这样......您也可以访问安装文件夹(Package.Current.InstallationFolder)中的文件,但仅限于阅读。