C#windows 8应用程序创建文件

C#windows 8应用程序创建文件,c#,windows-8,windows-store-apps,winrt-xaml,C#,Windows 8,Windows Store Apps,Winrt Xaml,我正在尝试创建一个文件,然后写入该文件并从中读取。。。有点像我的应用每次加载时都要加载的设置。为什么这对我不起作用?我正在运行visual studio 2012,我认为当我在那里运行程序时,应该在项目文件夹中创建文件。。。我的方法是异步和无效的。。。我真的不知道发生了什么哈哈 StorageFile sampleFile = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFileAsync("config.tx

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

 StorageFile sampleFile = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFileAsync("config.txt", CreationCollisionOption.ReplaceExisting);
如何在本地文件夹中创建此文件?那么,每次程序运行时,不管它在哪台计算机上创建文件,并在用户关闭并重新打开程序时加载文件

如何在本地文件夹中创建此文件

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

  • 你的应用程序的
    LocalFolder
    (不是安装文件夹)和
    RoamingFolder
  • 文档库、图片库、音乐库等,具体取决于应用程序的功能(在应用程序清单中声明)
  • 用户使用文件选择器选择的文件
我想就是这样。。。您还可以访问安装文件夹中的文件(
Package.Current.InstallationFolder
),但仅用于阅读

如何在本地文件夹中创建此文件

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

  • 你的应用程序的
    LocalFolder
    (不是安装文件夹)和
    RoamingFolder
  • 文档库、图片库、音乐库等,具体取决于应用程序的功能(在应用程序清单中声明)
  • 用户使用文件选择器选择的文件
我想就是这样。。。您也可以访问安装文件夹中的文件(
Package.Current.InstallationFolder
),但仅用于阅读。

伙计,好问题

以下是你所要求的具体逻辑:

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);
    }
}
公共类MyData
{
公共字符串标题{get;set;}
}
公共密封部分类主页面:第页
{
公共主页()
{
this.InitializeComponent();
}
受保护的异步重写无效OnNavigatedTo(NavigationEventArgs e)
{
this.DataContext=await LoadData();
}
受保护的覆盖无效OnNavigatedFrom(NavigationEventArgs e)
{
保存数据(此.DataContext作为MyData);
基于(e)的导航;
}
专用异步任务LoadData()
{
var\u Data=await-StorageHelper.ReadFileAsync(
this.GetType().ToString(),StorageHelper.StorageStrategies.Local);
返回_Data??new MyData(){Title=“Welcome”};
}
专用异步void SaveData(MyData数据)
{
等待StorageHelper.WriteFileAsync(
this.GetType().ToString(),data,StorageHelper.StorageStrategies.Local);
}
}
可以找到StorageHelper类。或者在我的博客上

祝你好运

伙计,问得好

以下是你所要求的具体逻辑:

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);
    }
}
公共类MyData
{
公共字符串标题{get;set;}
}
公共密封部分类主页面:第页
{
公共主页()
{
this.InitializeComponent();
}
受保护的异步重写无效OnNavigatedTo(NavigationEventArgs e)
{
this.DataContext=await LoadData();
}
受保护的覆盖无效OnNavigatedFrom(NavigationEventArgs e)
{
保存数据(此.DataContext作为MyData);
基于(e)的导航;
}
专用异步任务LoadData()
{
var\u Data=await-StorageHelper.ReadFileAsync(
this.GetType().ToString(),StorageHelper.StorageStrategies.Local);
返回_Data??new MyData(){Title=“Welcome”};
}
专用异步void SaveData(MyData数据)
{
等待StorageHelper.WriteFileAsync(
this.GetType().ToString(),data,StorageHelper.StorageStrategies.Local);
}
}
可以找到StorageHelper类。或者在我的博客上


祝你好运

不,使用隔离存储时,不会在项目目录中创建文件。Windows应用商店应用程序没有文件系统访问权限,只有特定位置。您使用的是
Storage.ApplicationData
,因此文件将位于
%USERPROFILE%\AppData
区域内。很高兴知道:ApplicationData\LocalFolder不在Visual Studio的解决方案中或其附近。如果您在%Appdata%上方的文件夹中搜索文件,特别是“C:\Users[insert username]\Appdata\Local\Packages”,则可以找到该文件,这样,由随机大小写字母和数字组成的文件夹就不会在您的项目目录中创建该文件。Windows应用商店应用程序没有文件系统访问权限,只有特定位置。您使用的是
Storage.ApplicationData
,因此文件将位于
%USERPROFILE%\AppData
区域内。很高兴知道:ApplicationData\LocalFolder不在Visual Studio的解决方案中或其附近。如果您在%Appdata%上方的文件夹中搜索文件,特别是“C:\Users[insert username]\Appdata\Local\Packages”,然后搜索由随机大小写字母和数字组成的文件夹,则可以找到它