判斷文件是否存在 ?不存在則創建默認文件 并寫入默認值
/// <summary>/// 判斷文件是否存在 不存在則創建默認文件 并寫入默認值/// </summary>public void IsConfigFileExist(){try{// 獲取應用程序的當前工作目錄。string fileName = System.IO.Directory.GetCurrentDirectory();string path = fileName + "\\Config";if (!Directory.Exists(path)) //此文件夾是否存在{Directory.CreateDirectory(path); //創建文件夾}//創建IP文件夾string path1 = path + "\\SerialPortConfig.ini";System.IO.FileInfo fi = new System.IO.FileInfo(path1);if (!File.Exists(path1)) //判斷IPAdderss.txt是否存在{//不存在文件,則創建IPAdderss.txt文件FileStream fs = new FileStream(path1, FileMode.Create, FileAccess.Write);fs.Close();//打開文件StreamWriter sw = new StreamWriter(path1);//定義一個鍵值對集合Dictionary<string, string> dictionary = new Dictionary<string, string>();//添加鍵值對數據,鍵必須唯一,值可重復dictionary.Add("參數解釋", "R1:繼電器1打開;R11:繼電器1關閉;");dictionary.Add("R1", "01 05 00 20 FF 00 8D F0");dictionary.Add("R11", "01 05 00 20 00 00 CC 00");dictionary.Add("R2", "01 05 00 21 FF 00 DC 30");dictionary.Add("R21", "01 05 00 21 00 00 9D C0");dictionary.Add("R3", "01 05 00 22 FF 00 2C 30");dictionary.Add("R31", "01 05 00 22 00 00 6D C0");dictionary.Add("R4", "01 05 00 23 FF 00 7D F0");dictionary.Add("R41", "01 05 00 23 00 00 3C 00");dictionary.Add("R5", "01 05 00 24 FF 00 CC 31");dictionary.Add("R51", "01 05 00 24 00 00 8D C1");dictionary.Add("R6", "01 05 00 25 FF 00 9D F1");dictionary.Add("R61", "01 05 00 25 00 00 DC 01");dictionary.Add("R7", "01 05 00 26 FF 00 6D F1");dictionary.Add("R71", "01 05 00 26 00 00 2C 01");dictionary.Add("R8", "01 05 00 27 FF 00 3C 31");dictionary.Add("R81", "01 05 00 27 00 00 7D C1");//通過鍵值對遍歷集合foreach (KeyValuePair<string, string> kv in dictionary){//向文件中寫入參數sw.WriteLine(kv.Key + "=" + kv.Value);}//向文件中寫入參數//關閉文件sw.Close();}//創建用戶文件夾,存儲用戶名和密碼path1 = path + "\\User.ini";fi = new System.IO.FileInfo(path1);if (!File.Exists(path1)) //判斷IPAdderss.txt是否存在{//不存在文件,則創建IPAdderss.txt文件FileStream fs = new FileStream(path1, FileMode.Create, FileAccess.Write);fs.Close();//打開文件StreamWriter sw = new StreamWriter(path1);//定義一個鍵值對集合Dictionary<string, string> dictionary = new Dictionary<string, string>();//添加鍵值對數據,鍵必須唯一,值可重復dictionary.Add("操作員", "123456");dictionary.Add("管理員", "admin");//通過鍵值對遍歷集合foreach (KeyValuePair<string, string> kv in dictionary){//向文件中寫入參數sw.WriteLine(kv.Key + "=" + kv.Value);}//向文件中寫入參數//關閉文件sw.Close();}}catch (Exception ex){MessageBox.Show("異常:" + ex.Message);}}
執行效果:創建文件并寫入默認值(以鍵值對形式)

通過鍵和文件名讀取文件中的值
/// <summary>/// 讀取文件/// </summary>/// <param name="keyName">鍵名</param>/// <param name="FileName">文件名</param>/// <returns></returns>public string ReadConfigFile(string keyName, string FileName){// 獲取應用程序的當前工作目錄。string fileName = System.IO.Directory.GetCurrentDirectory();string path = fileName + "\\Config";string filePath = path + "\\" + FileName;string returnValue = "";if (!Directory.Exists(path)) //此文件夾是否存在{IsConfigFileExist();}Dictionary<string, string> keyValuePairs = new Dictionary<string, string>();using (StreamReader reader = new StreamReader(filePath)){string line;while ((line = reader.ReadLine()) != null){string[] parts = line.Split('=');if (parts.Length == 2){keyValuePairs[parts[0].Trim()] = parts[1].Trim();}}}foreach (var kvp in keyValuePairs){//Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");if (kvp.Key == keyName){return kvp.Value;}}return returnValue;}
執行效果:讀取鍵名為R1的值


通過鍵修改文件中的值
/// <summary>/// 修改文件/// </summary>/// <param name="modifyKeyName">鍵名</param>/// <param name="modifyKeyValue">鍵值</param>/// <param name="modifyFileName">文件名</param>/// <returns></returns>public bool UpdateConfigFile(string modifyKeyName, string modifyKeyValue, string modifyFileName){try{// 獲取應用程序的當前工作目錄。string fileName = System.IO.Directory.GetCurrentDirectory();string path = fileName + "\\Config\\" + modifyFileName;string keyToUpdate = modifyKeyName;string newValue = modifyKeyValue;// 讀取文件內容到字符串數組string[] lines = File.ReadAllLines(path);string updatedContent = "";bool keyFound = false;foreach (var line in lines){if (line.StartsWith(keyToUpdate + "=")){// 找到鍵,修改值updatedContent += $"{keyToUpdate}={newValue}\n";keyFound = true;}else{// 未找到鍵,直接添加原行updatedContent += line + "\n";}}if (!keyFound){// 如果鍵不存在,添加新的鍵值對updatedContent += $"{keyToUpdate}={newValue}\n";}// 寫入修改后的內容到文件File.WriteAllText(path, updatedContent);}catch (Exception ex){MessageBox.Show("異常:" + ex.Message);return false;}return true;}
執行效果:修改鍵為R1的值為123

