* UIniFile: 增加读取字符串长度到4096,增加文件编码

* UIniConfig: 增加文件编码,通过Load传入
This commit is contained in:
Sunny 2022-11-01 21:54:10 +08:00
parent 6aff886a99
commit d8d3eeac53
2 changed files with 29 additions and 5 deletions

View File

@ -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
/// <summary>
/// Ini文件编码格式
/// </summary>
public Encoding IniEncoding { get; private set; } = Encoding.Default;
public bool Load(string fileName, Encoding encoding)
{
IniEncoding = encoding;
return Load(fileName);
}
/// <summary>加载指定配置文件</summary>
/// <param name="filename">文件名</param>
/// <returns>结果</returns>
@ -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

View File

@ -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
/// <summary>
/// Ini文件编码格式
/// </summary>
public static readonly Encoding IniEncoding = Encoding.Default;
public Encoding IniEncoding { get; set; } = Encoding.Default;
/// <summary>
/// 类的构造函数,文件名必须是完全路径,不能是相对路径
/// </summary>
/// <param name="fileName">文件名</param>
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;
}
/// <summary>
/// 确保资源的释放
/// </summary>
@ -128,7 +134,7 @@ namespace Sunny.UI
/// <returns>结果</returns>
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)
{
}
}
}