先创建utf-16的ini文件

This commit is contained in:
风吹落的叶子 2023-10-21 16:37:02 +08:00
parent 6e4d99d742
commit 0b560cb1c5
No known key found for this signature in database
GPG Key ID: C17A3E08243E24EC

View File

@ -1,5 +1,6 @@
using System.IO; using System.IO;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Text;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
namespace Milimoe.FunGame.Core.Api.Utility namespace Milimoe.FunGame.Core.Api.Utility
@ -9,11 +10,16 @@ namespace Milimoe.FunGame.Core.Api.Utility
/* /*
* API函数 * API函数
*/ */
[LibraryImport("kernel32", EntryPoint = "WritePrivateProfileStringW", StringMarshalling = StringMarshalling.Utf16)] [LibraryImport("kernel32.dll", EntryPoint = "WritePrivateProfileStringW", StringMarshalling = StringMarshalling.Utf16)]
private static partial long WritePrivateProfileString(string section, string key, string val, string filePath); private static partial long WritePrivateProfileString(string section, string key, string val, string filePath);
[LibraryImport("Kernel32.dll", EntryPoint = "GetPrivateProfileStringW", StringMarshalling = StringMarshalling.Utf16)] [LibraryImport("Kernel32.dll", EntryPoint = "GetPrivateProfileStringW", StringMarshalling = StringMarshalling.Utf16)]
private static partial int GetPrivateProfileString(string section, string key, string def, char[] val, int size, string filePath); private static partial int GetPrivateProfileString(string section, string key, string def, char[] val, int size, string filePath);
/// <summary>
/// 默认的配置文件名称
/// </summary>
public const string DefaultFileName = @"FunGame.ini";
/// <summary> /// <summary>
/// 写入ini文件 /// 写入ini文件
/// </summary> /// </summary>
@ -21,7 +27,7 @@ namespace Milimoe.FunGame.Core.Api.Utility
/// <param name="Key">键</param> /// <param name="Key">键</param>
/// <param name="Value">值</param> /// <param name="Value">值</param>
/// <param name="FileName">文件名缺省为FunGame.ini</param> /// <param name="FileName">文件名缺省为FunGame.ini</param>
public static void WriteINI(string Section, string Key, string Value, string FileName = @"FunGame.ini") public static void WriteINI(string Section, string Key, string Value, string FileName = DefaultFileName)
{ {
WritePrivateProfileString(Section, Key, Value, Environment.CurrentDirectory.ToString() + @"\" + FileName); WritePrivateProfileString(Section, Key, Value, Environment.CurrentDirectory.ToString() + @"\" + FileName);
} }
@ -33,7 +39,7 @@ namespace Milimoe.FunGame.Core.Api.Utility
/// <param name="Key">键</param> /// <param name="Key">键</param>
/// <param name="FileName">文件名缺省为FunGame.ini</param> /// <param name="FileName">文件名缺省为FunGame.ini</param>
/// <returns>读取到的值</returns> /// <returns>读取到的值</returns>
public static string ReadINI(string Section, string Key, string FileName = @"FunGame.ini") public static string ReadINI(string Section, string Key, string FileName = DefaultFileName)
{ {
char[] val = new char[General.StreamByteSize]; char[] val = new char[General.StreamByteSize];
_ = GetPrivateProfileString(Section, Key, "", val, General.StreamByteSize, Environment.CurrentDirectory.ToString() + @"\" + FileName); _ = GetPrivateProfileString(Section, Key, "", val, General.StreamByteSize, Environment.CurrentDirectory.ToString() + @"\" + FileName);
@ -46,13 +52,16 @@ namespace Milimoe.FunGame.Core.Api.Utility
/// </summary> /// </summary>
/// <param name="FileName">文件名缺省为FunGame.ini</param> /// <param name="FileName">文件名缺省为FunGame.ini</param>
/// <returns>是否存在</returns> /// <returns>是否存在</returns>
public static bool ExistINIFile(string FileName = @"FunGame.ini") => File.Exists($@"{Environment.CurrentDirectory}\{FileName}"); public static bool ExistINIFile(string FileName = DefaultFileName) => File.Exists($@"{Environment.CurrentDirectory}\{FileName}");
/// <summary> /// <summary>
/// 初始化ini模板文件 /// 初始化ini模板文件
/// </summary> /// </summary>
public static void Init(FunGameInfo.FunGame FunGameType) public static void Init(FunGameInfo.FunGame FunGameType)
{ {
StreamWriter writer = new(DefaultFileName, false, General.DefaultEncoding);
writer.Write("[Server]");
writer.Close();
switch (FunGameType) switch (FunGameType)
{ {
case FunGameInfo.FunGame.FunGame_Core: case FunGameInfo.FunGame.FunGame_Core: