判断文件是否存在 不存在则创建默认文件 并写入默认值
/// <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 + "\\IPAdderss.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("IP", "192.168.0.100");//通过键值对遍历集合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();//Hashtable ht = new Hashtable();//ht.Add("操作员", "123456");//ht.Add("管理员", "admin");//var mm = ht["IP"];//打开文件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

