C#对文件得读写

 C# 读写ini 文件

 

想要使用C# 读取ini 文件首先可以在Model文件夹中创建一个Class,名为:IniHelper

程序中得内容为:

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.IO;

namespace Mvvmtoolkit.Models
{
    public class IniHelper
    {
        [DllImport("kernel32")]//返回0表示失败,非0为成功
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
        [DllImport("kernel32")]//返回取得字符串缓冲区的长度
        private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);

        /// <summary>
        /// 读取ini文件
        /// </summary>
        /// <param name="Section">名称</param>
        /// <param name="Key">关键字</param>
        /// <param name="defaultText">默认值</param>
        /// <param name="iniFilePath">ini文件地址</param>
        /// <returns></returns>
        public static string GetValue(string Section, string Key, string defaultText, string iniFilePath)
        {
            if (File.Exists(iniFilePath))
            {
                StringBuilder temp = new StringBuilder(1024);
                GetPrivateProfileString(Section, Key, defaultText, temp, 1024, iniFilePath);
                return temp.ToString();
            }
            else
            {
                return defaultText;
            }
        }

        /// <summary>
        /// 写入ini文件
        /// </summary>
        /// <param name="Section">名称</param>
        /// <param name="Key">关键字</param>
        /// <param name="defaultText">默认值</param>
        /// <param name="iniFilePath">ini文件地址</param>
        /// <returns></returns>
        public static bool SetValue(string Section, string Key, string Value, string iniFilePath)
        {
            var pat = Path.GetDirectoryName(iniFilePath);
            if (Directory.Exists(pat) == false)
            {
                Directory.CreateDirectory(pat);
            }
            if (File.Exists(iniFilePath) == false)
            {
                File.Create(iniFilePath).Close();
            }
            long OpStation = WritePrivateProfileString(Section, Key, Value, iniFilePath);
            if (OpStation == 0)
            {
                return false;
            }
            else
            {
                return true;
            }
        }
    }

}

 该类中定义了如何读和写Ini 文件得方法,下面介绍如何使用

检查路径下是否存在配置文件,存在的话就写入,否则创建一个

            string folderName = Environment.CurrentDirectory + @"\myConfig";
            Directory.CreateDirectory(folderName);

            string fileName = "config.ini";
            string pathString = Path.Combine(folderName, fileName);
// 检查是否存在该文件

                        if (!File.Exists(pathString))
                        {
                            var r = MessageBox.Show($"配置文件不存在,已自动生成...", "注册提示", MessageBoxButton.OK, MessageBoxImage.Information);

                 
                            FileStream f = new FileStream(pathString, FileMode.Create);//创建文件流
                            StreamWriter sw = new StreamWriter(f);//创建写入器
                            sw.Write("Created automatically");//已流的方式写入数据
                            sw.Close();//关闭写入器
                            f.Close();//关闭文件流
                        }

// 向文件中写入字串
                            if (File.Exists(file))
                            {
                                IniHelper.SetValue("本机数据", "MachineID", "对应的Id数据", file);
                               
                            }

// 读取数据  名称 关键字 默认值(如果读取)
                        string ReadID = IniHelper.GetValue("本机数据", "MachineID", "", file);
                        machineID = FingerPrint.Value().ToString();

下面是程序的效果

 程序源码下载地址:

使用C#语言读写ini文件-Microsoft文档类资源-CSDN下载

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值