C# 讀取ini檔案
阿新 • • 發佈:2022-03-11
/** *┌──────────────────────────────────────────────────────────────┐ *│ 描 述:日誌相關的工具類 *│ 作 者:執筆小白 *│ 版 本:1.0 *│ 建立時間:2020-6-13 15:40:56 *└──────────────────────────────────────────────────────────────┘ *┌──────────────────────────────────────────────────────────────┐ *│ 名稱空間: ZhibiXiaobai.Uril.ConfigFileHelper *│ 類 名:OperateFile_InI *└──────────────────────────────────────────────────────────────┘ */ using System.Runtime.InteropServices; using System.Text; namespace ZhibiXiaobai.Uril.ConfigFileHelper { /// <summary> /// InI檔案的讀寫 /// </summary> public class OperateFile_InI { #region API函式宣告 [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); #endregion #region 讀Ini檔案 /// <summary> /// 讀Ini檔案 /// 詳細見INI例子 /// </summary> /// <param name="Section">[Section]標籤的名字</param> /// <param name="Key">key</param> /// <param name="NoText">未找到值時預設返回的值</param> /// <param name="iniFilePath">ini檔案的路徑</param> /// <returns></returns> public static string ReadIniData(string Section, string Key, string NoText, string iniFilePath) { if (File.Exists(iniFilePath)) { StringBuilder temp = new StringBuilder(1024); GetPrivateProfileString(Section, Key, NoText, temp, 1024, iniFilePath); return temp.ToString(); } else { return String.Empty; } } #endregion #region 寫Ini檔案 /// <summary> /// 寫Ini檔案 /// 詳細見INI例子 /// </summary> /// <param name="Section">[Section]標籤的名字</param> /// <param name="Key">key</param> /// <param name="Value">key對應的Value</param> /// <param name="iniFilePath">ini檔案的路徑</param> /// <returns></returns> public static bool WriteIniData(string Section, string Key, string Value, string iniFilePath) { if (File.Exists(iniFilePath)) { long OpStation = WritePrivateProfileString(Section, Key, Value, iniFilePath); return OpStation == 0 ? false : true; } else { return false; } } #endregion } /* DBServer.ini結構如下 * [Head] * Head=Head項不可刪除 * [Server] * Name=localhost * [DB] * Name=NorthWind * [User] * Name=sa */ }
或者使用微軟的Configuration Extensions來讀取ini檔案。