现在的位置: 首页 > 综合 > 正文

INI文件管理类代码

2012年09月08日 ⁄ 综合 ⁄ 共 4443字 ⁄ 字号 评论关闭
  1using System;
  2using System.IO;
  3using System.Data;
  4using System.Runtime.InteropServices;
  5using System.Text;
  6using System.Collections;
  7using System.Collections.Specialized;
  8
  9namespace FaibClass.IniFile
 10{
 11    /// <summary>
 12    /// INI配置文件管理库,
 13    /// Design By Faib Studio.
 14    /// </summary>

 15    public class IniFile
 16    {
 17    
 18        internal static string _FileName;
 19        private SectionCollection _Sections=new SectionCollection();
 20
 21        /// <summary>
 22        /// 构造类。
 23        /// </summary>

 24        public IniFile()
 25        {
 26        }

 27
 28        /// <summary>
 29        /// INI文件名。
 30        /// </summary>

 31        public string FileName
 32        {
 33            get{return _FileName;}
 34            set{_FileName=value;this.LoadDataStructure();}
 35        }

 36
 37        /// <summary>
 38        /// 构造类,传入文件名。
 39        /// </summary>
 40        /// <param name="FileName">INI文件名。</param>

 41        public IniFile(string FileName)
 42        {
 43            _FileName=FileName;
 44            LoadDataStructure();
 45        }

 46
 47        /// <summary>
 48        /// 返回版权信息。
 49        /// </summary>

 50        public string CopyrightMessage
 51        {
 52            get{return "Copyright (C) 2006 Faib Studio All Rights Reserved";}
 53        }

 54
 55        /// <summary>
 56        /// 读取键值。
 57        /// </summary>
 58        /// <param name="Section">节名称。</param>
 59        /// <param name="Key">键名称</param>
 60        /// <returns>键值。</returns>

 61        public string ReadValue(string Section,string Key)
 62        {
 63            if(_FileName==null || _FileName=="")return null;
 64            return IniFile.ReadValue(_FileName,Section,Key);
 65        }

 66
 67        /// <summary>
 68        /// 读取键值。
 69        /// </summary>
 70        /// <param name="FileName">文件路径。</param>
 71        /// <param name="Section">节名称。</param>
 72        /// <param name="Key">键名称</param>
 73        /// <returns>键值。</returns>

 74        public static string ReadValue(string FileName,string Section,string Key)
 75        {
 76            byte[] temp=new byte[255];
 77            try
 78            {
 79                int l = WindowsAPI.GetPrivateProfileString(Section,Key,"",temp, temp.GetUpperBound(0) ,FileName);
 80                string ret = Encoding.GetEncoding(0).GetString(temp);
 81                return ret.Substring(0,ret.IndexOf((char)0));
 82            }

 83            catch
 84            {
 85                throw;
 86            }

 87        }

 88
 89        /// <summary>
 90        /// 写入键值。
 91        /// </summary>
 92        /// <param name="Section">节名称。</param>
 93        /// <param name="Key">键名称。</param>
 94        /// <param name="Value">键值。</param>

 95        public void WriteValue(string Section,string Key,object Value)
 96        {
 97            if(_FileName==null || _FileName=="")return;
 98            IniFile.WriteValue(_FileName,Section,Key,Value);
 99            this.LoadDataStructure();
100        }

101
102        /// <summary>
103        /// 写入键值。
104        /// </summary>
105        /// <param name="FileName">文件路径。</param>
106        /// <param name="Section">节名称。</param>
107        /// <param name="Key">键名称。</param>
108        /// <param name="Value">键值。</param>

109        public static void WriteValue(string FileName,string Section,string Key,object Value)
110        {
111            WindowsAPI.WritePrivateProfileString(Section,Key,Value.ToString(),FileName);
112        }

113
114        /// <summary>
115        /// 移除节。
116        /// </summary>
117        /// <param name="Section">节名称。</param></param>

118        public void RemoveSection(string Section)
119        {
120            if(_FileName==null || _FileName=="")return;
121            IniFile.RemoveSection(_FileName,Section);
122            this.LoadDataStructure();
123        }

124
125        /// <summary>
126        /// 移除节。
127        /// </summary>
128        /// <param name="FileName">文件路径。</param>
129        /// <param name="Section">节名称。</param>

130        public static void RemoveSection(string FileName,string Section)
131        {
132            WindowsAPI.WritePrivateProfileString(Section, nullnull, FileName);
133        }

134
135        /// <summary>
136        /// 移除键值。
137        /// </summary>
138        /// <param name="Section">节名称。</param>
139        /// <param name="Key">键名称。</param>

140        public void RemoveKey(string Section,string Key)
141        

抱歉!评论已关闭.