From d8d3eeac538359c1ce770dd4e5562be424689b76 Mon Sep 17 00:00:00 2001 From: Sunny Date: Tue, 1 Nov 2022 21:54:10 +0800 Subject: [PATCH] =?UTF-8?q?*=20UIniFile:=20=E5=A2=9E=E5=8A=A0=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E5=AD=97=E7=AC=A6=E4=B8=B2=E9=95=BF=E5=BA=A6=E5=88=B0?= =?UTF-8?q?4096=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=96=87=E4=BB=B6=E7=BC=96?= =?UTF-8?q?=E7=A0=81=20*=20UIniConfig:=20=E5=A2=9E=E5=8A=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=BC=96=E7=A0=81=EF=BC=8C=E9=80=9A=E8=BF=87Load?= =?UTF-8?q?=E4=BC=A0=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SunnyUI/Common/UIniConfig.cs | 17 +++++++++++++++-- SunnyUI/Common/UIniFile.cs | 17 ++++++++++++++--- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/SunnyUI/Common/UIniConfig.cs b/SunnyUI/Common/UIniConfig.cs index c6139092..d5869fa0 100644 --- a/SunnyUI/Common/UIniConfig.cs +++ b/SunnyUI/Common/UIniConfig.cs @@ -17,6 +17,7 @@ * 创建日期: 2020-01-01 * * 2020-01-01: V2.2.0 增加文件说明 + * 2022-11-01: V3.2.6 增加文件编码,通过Load传入 ******************************************************************************/ using System; @@ -24,6 +25,7 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.Collections.Specialized; using System.IO; +using System.Text; namespace Sunny.UI { @@ -35,6 +37,17 @@ namespace Sunny.UI { #region 加载 + /// + /// Ini文件编码格式 + /// + public Encoding IniEncoding { get; private set; } = Encoding.Default; + + public bool Load(string fileName, Encoding encoding) + { + IniEncoding = encoding; + return Load(fileName); + } + /// 加载指定配置文件 /// 文件名 /// 结果 @@ -66,7 +79,7 @@ namespace Sunny.UI } } - IniFile ini = new IniFile(filename); + IniFile ini = new IniFile(filename, IniEncoding); foreach (var ident in idents.Values) { if (ident.IsList) @@ -167,7 +180,7 @@ namespace Sunny.UI listidents.Clear(); DirEx.CreateDir(Path.GetDirectoryName(filename)); - File.WriteAllLines(filename, strs.ToArray(), IniBase.IniEncoding); + File.WriteAllLines(filename, strs.ToArray(), IniEncoding); } #endregion 加载 diff --git a/SunnyUI/Common/UIniFile.cs b/SunnyUI/Common/UIniFile.cs index a4eaf5c9..9acc250d 100644 --- a/SunnyUI/Common/UIniFile.cs +++ b/SunnyUI/Common/UIniFile.cs @@ -17,6 +17,7 @@ * 创建日期: 2020-01-01 * * 2020-01-01: V2.2.0 增加文件说明 + * 2022-11-01: V3.2.6 增加读取字符串长度到4096,增加文件编码 ******************************************************************************/ using Sunny.UI.Win32; @@ -46,13 +47,13 @@ namespace Sunny.UI /// /// Ini文件编码格式 /// - public static readonly Encoding IniEncoding = Encoding.Default; + public Encoding IniEncoding { get; set; } = Encoding.Default; /// /// 类的构造函数,文件名必须是完全路径,不能是相对路径 /// /// 文件名 - protected IniBase(string fileName) + public IniBase(string fileName) { //必须是完全路径,不能是相对路径 FileName = fileName; @@ -68,6 +69,11 @@ namespace Sunny.UI } } + public IniBase(string fileName, Encoding encoding) : this(fileName) + { + IniEncoding = encoding; + } + /// /// 确保资源的释放 /// @@ -128,7 +134,7 @@ namespace Sunny.UI /// 结果 public string Read(string section, string key, string Default) { - byte[] buffer = new byte[2048]; + byte[] buffer = new byte[4096]; if (Default == null) { Default = ""; @@ -797,5 +803,10 @@ namespace Sunny.UI public IniFile(string fileName) : base(fileName) { } + + public IniFile(string fileName, Encoding encoding) : base(fileName, encoding) + { + + } } } \ No newline at end of file