• 【代码片段】C#程序Json 配置文件读取,当配置文件出错重新创建默认的配置文件


    读取配置文件,当出错的时候创建默认的文件

    读取配置文件,如果配置文件出错就用默认值创建一个新的的配置文件。
    文件在程序的exe目录TitlePictureConfigInfo.json文件中。

    using Newtonsoft.Json;
    using System;
    
            private const string defultconfigpath = "/TitlePictureConfigInfo.json";//默认的配置文件名称
    
    
            /// 
            /// 初始化程序配置文件
            /// 
            private void InitTitlePictureConfigInfo()
            {
                string programTitleFilePath = Application.StartupPath + defultconfigpath;
                if (System.IO.File.Exists(programTitleFilePath))//判断文件是否存在
                {
                    string readTileFileStr1 = System.IO.File.ReadAllText(programTitleFilePath);
                    titlePictureConfigInfo = JsonConvert.DeserializeObject(readTileFileStr1);
                    if (titlePictureConfigInfo == null)
                    {
                        SetDefaultConfig();
                    }
                    if (titlePictureConfigInfo.Btn_EnterSystem_FontColor == null)
                    {
                        SetDefaultConfig();
                    }
    
                }
                else
                {
                    SetDefaultConfig();
                }
    
                string readTileFileStr = System.IO.File.ReadAllText(programTitleFilePath);
                titlePictureConfigInfo = JsonConvert.DeserializeObject(readTileFileStr);
            }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    当配置文件出错就会重新创建默认的配置文件

    
            /// 
            /// 写入默认的配置文件
            /// 
            private void SetDefaultConfig()
            {
                TitlePictureConfigInfo defultConfig = new TitlePictureConfigInfo();
                string defuleString = JsonConvert.SerializeObject(defultConfig);
                string path = Application.StartupPath + defultconfigpath;
                System.IO.File.WriteAllText(path, defuleString);
    
            }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    配置文件的对象,每多个想要配置的 项目就多一个属性,并需要给到默认值

       /// 
        /// 配置文件的对象
        /// 
        internal class TitlePictureConfigInfo
        {
            /// 
            /// 内容
            /// 
            public string Title_TitleText = "XXXX_系统";
    
            /// 
            /// 字体
            /// 
            public string Title_Fonts = "宋体";
    
            /// 
            /// 字体大小
            /// 
            public int Title_FontSize = 40;
    
            /// 
            /// 字体颜色
            /// 
            public string Title_FontColor = "#FFFFFF";
    
    
            //---------------------------------------------------------------------
            /// 
            /// 进入系统按钮上显示的文字
            /// 
            public string Btn_EnterSystem_Text = "进入系统";
    
    
            /// 
            /// 按钮字体
            /// 
            public string Btn_EnterSystem_Font = "宋体";
    
    
            /// 
            /// 按钮字体大小
            /// 
            public int Btn_EnterSystem_FontSize = 9;
    
    
            /// 
            /// 按钮字体颜色
            /// 
            public string Btn_EnterSystem_FontColor = "#FFFFFF";
    
            //-------------------------------------------------------------------
    
    
            /// 
            /// 目标程序路径
            /// 
            public string TargetProcessPath = @"C:\Windows\System32\calc.exe";
    
            /// 
            /// 图片的路径
            /// 
            public string PictureBoxPath = "/pexels-stephan-seeber-1261728.png";
    
    
    
        }
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
  • 相关阅读:
    创新案例|香氛DTC品牌Scentbird从0到月收百万美元的4大增长运营策略
    java游戏制作-拼图游戏
    docker desktop无法启动问题
    0079__多线程私有数据pthread_key_create
    2.卷积神经网络(CNN)
    sqlmap语法介绍
    WPF“x:name”和“name”有什么区别
    【优化选址】基于matlab遗传算法求解物流配送中心选址【含Matlab源码 1917期】
    java计算机毕业设计农田节水灌溉监测系统源码+程序+lw文档+mysql数据库
    计算机视觉 目标分割
  • 原文地址:https://blog.csdn.net/GoodCooking/article/details/132847372