C# 如何正确读取文本文件中的值

C# 如何正确读取文本文件中的值,c#,json,text,uwp,C#,Json,Text,Uwp,我正在从事一个项目,其中的值存储在一个文本文件中,并且应该在每次应用程序启动时检索。 文本文件非常简单明了: { "HowManyDayImages": "11", "HowManyNightImages": "5", } 我有一个简单的类,有两个值作为数字: public class ImageConfig { public int HowManyDayImages { get; set; } public int HowManyNightImages { g

我正在从事一个项目,其中的值存储在一个文本文件中,并且应该在每次应用程序启动时检索。 文本文件非常简单明了:

{
    "HowManyDayImages": "11",
    "HowManyNightImages": "5",
}
我有一个简单的类,有两个值作为数字:

public class ImageConfig
{
    public int HowManyDayImages { get; set; }
    public int HowManyNightImages { get; set; }
}
然后我使用以下代码查找受尊重的文件并从中读取值并进行设置:

public static async void LoadConfigAsync()
{
    try
    {
        ApplicationDataContainer settings = ApplicationData.Current.LocalSettings;
        string themeName = (string)settings.Values["Theme"];
        StorageFolder localFolder = ApplicationData.Current.LocalFolder;
        StorageFolder timeFolder = await localFolder.GetFolderAsync("Dynamic");
        StorageFolder themeFolder = await localFolder.GetFolderAsync(themeName);
        string imageConf;
        if (File.Exists("images.conf"))
        {
            imageConf = File.ReadAllText("images.conf");
        }
        else
        {
            imageConf = Encoding.UTF8.GetString(Properties.Resources.imageConf);
        }
        imageSettings = JsonConvert.DeserializeObject<ImageConfig>(imageConf);
    }
    catch
    {
    }
}
公共静态异步void LoadConfigAsync()
{
尝试
{
ApplicationDataContainer设置=ApplicationData.Current.LocalSettings;
字符串主题名=(字符串)设置。值[“主题”];
StorageFolder localFolder=ApplicationData.Current.localFolder;
StorageFolder timeFolder=等待localFolder.GetFolderAsync(“动态”);
StorageFolder themeFolder=wait localFolder.GetFolderAsync(themeName);
字符串imageConf;
如果(File.Exists(“images.conf”))
{
imageConf=File.ReadAllText(“images.conf”);
}
其他的
{
imageConf=Encoding.UTF8.GetString(Properties.Resources.imageConf);
}
imageSettings=JsonConvert.DeserializeObject(imageConf);
}
抓住
{
}
}
因此,我面临两个问题。第一个是在这一行“Encoding.UTF8.GetString(Properties.Resources.imageConf);”中,我得到一个错误,即“Properties”在当前上下文中不存在

我面临的第二个问题是,我不断收到一个错误,说“动态”找不到

如何正确读取文本文件中的值

首先您需要一个存储json信息的文本文件,然后将其存储在您下次可以访问的指定文件夹中

创建文本文件

将文本写入文件

Second从文本文件加载文本,然后使用
jsonvert
对文本进行反序列化

从文件中读取

注意

我面临的第二个问题是,我不断收到一个错误,说“动态”找不到

从屏幕截图中,您无法使用存储在项目目录下的
动态
文件夹获取它。请使用包装

如何正确读取文本文件中的值

首先您需要一个存储json信息的文本文件,然后将其存储在您下次可以访问的指定文件夹中

创建文本文件

将文本写入文件

Second从文本文件加载文本,然后使用
jsonvert
对文本进行反序列化

从文件中读取

注意

我面临的第二个问题是,我不断收到一个错误,说“动态”找不到

从屏幕截图中,您无法使用存储在项目目录下的
动态
文件夹获取它。请使用包装


有什么理由不使用appconfig/webconfig吗?我刚刚开始学习。对我来说,使用本地设置似乎更容易一些。我正在尝试解决appconfig,如果解决了,我将开始使用it@AsemKhen,看看。这是一种在运行时从文件中读取文本设置的方法,这是一种经过尝试和测试的行业标准。没有必要重新发明轮子@WynDiesel,App.config似乎非常有助于将应用程序设置存储在apps目录中。我试图达到的目的是读取捆绑在文件夹中的外部配置文件,这些文件可以添加或删除。(应用程序查找Zip文件,将其解压缩到内部文件夹,并读取其中的配置以设置前面提到的值)@AsemKhen我认为Wyn指的是使用属性保存文件名,与将文件名存储在app.config中不同,有什么原因不使用appconfig/webconfig吗?我刚刚开始学习。对我来说,使用本地设置似乎更容易一些。我正在尝试解决appconfig,如果解决了,我将开始使用it@AsemKhen,看看。这是一种在运行时从文件中读取文本设置的方法,这是一种经过尝试和测试的行业标准。没有必要重新发明轮子@WynDiesel,App.config似乎非常有助于将应用程序设置存储在apps目录中。我试图达到的目的是读取捆绑在文件夹中的外部配置文件,这些文件可以添加或删除。(应用程序查找Zip文件,将其解压缩到内部文件夹,并读取其中的配置以设置前面提到的值)@AsemKhen我认为Wyn指的是使用属性保存文件名,而不是将文件名存储在app.config中。
// Create sample file; replace if exists.
Windows.Storage.StorageFolder storageFolder =
    Windows.Storage.ApplicationData.Current.LocalFolder;
Windows.Storage.StorageFile sampleFile =
    await storageFolder.CreateFileAsync("sample.txt",
        Windows.Storage.CreationCollisionOption.ReplaceExisting);
Windows.Storage.StorageFolder storageFolder =
    Windows.Storage.ApplicationData.Current.LocalFolder;
Windows.Storage.StorageFile sampleFile =
    await storageFolder.GetFileAsync("sample.txt");

await Windows.Storage.FileIO.WriteTextAsync(sampleFile, "json info");
string json = await Windows.Storage.FileIO.ReadTextAsync(sampleFile);

var item = JsonConvert.DeserializeObject<Item>(json);
var info = item.info;
var folder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Dyanmic");