社区
C#
帖子详情
怎么样删除INI文件中的内容.
chrisl80
2007-05-09 09:39:14
意思是全部删除,也包括KEY的删除.有没有删除INI文件内容的方法,还是要当成一般文件操作.请给点代码吧.
...全文
909
5
打赏
收藏
怎么样删除INI文件中的内容.
意思是全部删除,也包括KEY的删除.有没有删除INI文件内容的方法,还是要当成一般文件操作.请给点代码吧.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
王集鹄
2007-05-09
打赏
举报
回复
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace IniFiles
{
public abstract class CustomIniFile
{
public CustomIniFile(string AFileName)
{
FFileName = AFileName;
}
private string FFileName;
public string FileName
{
get { return FFileName; }
}
public virtual bool SectionExists(string Section)
{
List<string> vStrings = new List<string>();
ReadSections(vStrings);
return vStrings.Contains(Section);
}
public virtual bool ValueExists(string Section, string Ident)
{
List<string> vStrings = new List<string>();
ReadSection(Section, vStrings);
return vStrings.Contains(Ident);
}
public abstract string ReadString(string Section, string Ident, string Default);
public abstract bool WriteString(string Section, string Ident, string Value);
public abstract bool ReadSectionValues(string Section, List<string> Strings);
public abstract bool ReadSection(string Section, List<string> Strings);
public abstract bool ReadSections(List<string> Strings);
public abstract bool EraseSection(string Section);
public abstract bool DeleteKey(string Section, string Ident);
public abstract bool UpdateFile();
}
/// <summary>
/// 存储本地INI文件的类。
/// </summary>
public class IniFile : CustomIniFile
{
[DllImport("kernel32")]
private static extern uint GetPrivateProfileString(
string lpAppName, // points to section name
string lpKeyName, // points to key name
string lpDefault, // points to default string
byte[] lpReturnedString, // points to destination buffer
uint nSize, // size of destination buffer
string lpFileName // points to initialization filename
);
[DllImport("kernel32")]
private static extern bool WritePrivateProfileString(
string lpAppName, // pointer to section name
string lpKeyName, // pointer to key name
string lpString, // pointer to string to add
string lpFileName // pointer to initialization filename
);
/// <summary>
/// 构造IniFile实例。
/// <param name="AFileName">指定文件名</param>
/// </summary>
public IniFile(string AFileName)
: base(AFileName)
{
}
/// <summary>
/// 析够IniFile实例。
/// </summary>
~IniFile()
{
UpdateFile();
}
/// <summary>
/// 读取字符串值。
/// <param name="Ident">指定变量标识。</param>
/// <param name="Section">指定所在区域。</param>
/// <param name="Default">指定默认值。</param>
/// <returns>返回读取的字符串。如果读取失败则返回该值。</returns>
/// </summary>
public override string ReadString(string Section, string Ident, string Default)
{
byte[] vBuffer = new byte[2048];
uint vCount = GetPrivateProfileString(Section,
Ident, Default, vBuffer, (uint)vBuffer.Length, FileName);
return Encoding.Default.GetString(vBuffer, 0, (int)vCount);
}
/// <summary>
/// 写入字符串值。
/// </summary>
/// <param name="Section">指定所在区域。</param>
/// <param name="Ident">指定变量标识。</param>
/// <param name="Value">所要写入的变量值。</param>
/// <returns>返回写入是否成功。</returns>
public override bool WriteString(string Section, string Ident, string Value)
{
return WritePrivateProfileString(Section, Ident, Value, FileName);
}
/// <summary>
/// 获得区域的完整文本。(变量名=值格式)。
/// </summary>
/// <param name="Section">指定区域标识。</param>
/// <param name="Strings">输出处理结果。</param>
/// <returns>返回读取是否成功。</returns>
public override bool ReadSectionValues(string Section, List<string> Strings)
{
List<string> vIdentList = new List<string>();
if (!ReadSection(Section, vIdentList)) return false;
foreach (string vIdent in vIdentList)
Strings.Add(string.Format("{0}={1}", vIdent, ReadString(Section, vIdent, "")));
return true;
}
/// <summary>
/// 读取区域变量名列表。
/// </summary>
/// <param name="Section">指定区域名。</param>
/// <param name="Strings">指定输出列表。</param>
/// <returns>返回获取是否成功。</returns>
public override bool ReadSection(string Section, List<string> Strings)
{
byte[] vBuffer = new byte[16384];
uint vLength = GetPrivateProfileString(Section, null, null, vBuffer,
(uint)vBuffer.Length, FileName);
int j = 0;
for (int i = 0; i < vLength; i++)
if (vBuffer[i] == 0)
{
Strings.Add(Encoding.Default.GetString(vBuffer, j, i - j));
j = i + 1;
}
return true;
}
/// <summary>
/// 读取区域名列表。
/// </summary>
/// <param name="Strings">指定输出列表。</param>
/// <returns></returns>
public override bool ReadSections(List<string> Strings)
{
byte[] vBuffer = new byte[16384];
uint vLength = GetPrivateProfileString(null, null, null, vBuffer,
(uint)vBuffer.Length, FileName);
int j = 0;
for (int i = 0; i < vLength; i++)
if (vBuffer[i] == 0)
{
Strings.Add(Encoding.Default.GetString(vBuffer, j, i - j));
j = i + 1;
}
return true;
}
/// <summary>
/// 删除指定区域。
/// </summary>
/// <param name="Section">指定区域名。</param>
/// <returns>返回删除是否成功。</returns>
public override bool EraseSection(string Section)
{
return WritePrivateProfileString(Section, null, null, FileName);
}
/// <summary>
/// 删除指定变量。
/// </summary>
/// <param name="Section">变量所在区域。</param>
/// <param name="Ident">变量标识。</param>
/// <returns>返回删除是否成功。</returns>
public override bool DeleteKey(string Section, string Ident)
{
return WritePrivateProfileString(Section, Ident, null, FileName);
}
/// <summary>
/// 更新文件。
/// </summary>
/// <returns>返回更新是否成功。</returns>
public override bool UpdateFile()
{
return WritePrivateProfileString(null, null, null, FileName);
}
}
}
EraseSection() // 删除一个区块
DeleteKey() // 删除一个键值
marvelstack
2007-05-09
打赏
举报
回复
Read/Write XML files, Config files, INI files, or the Registry
By Alvaro Mendez
http://www.codeproject.com/csharp/readwritexmlini.asp
Koala_sea
2007-05-09
打赏
举报
回复
直接把文件删掉。等你需要的时候在建立一个不行?
shinaterry
2007-05-09
打赏
举报
回复
替换为空的INI不可吗???
小y的CSDN博客
2007-05-09
打赏
举报
回复
FileStream fs = new FileStream("file.ini", FileMode.Create, FileAccess.Write);
C#
Ini
配置
文件
修改类
C#
Ini
配置
文件
修改类 包括
删除
编辑 等...
Windows
中
读写
ini
文件
.
ini
文件
是
Ini
tialization File的缩写,即初始化
文件
,是windows的系统配置
文件
所采用的存储格式,来配置应用软件以实现不同用户的要求。配置
文件
有很多种如
ini
配置
文件
,XML配置
文件
,系统注册表等。在早期的windows桌面系统
中
主要是用
ini
文件
作为系统的配置
文件
,从win95以后开始转向使用注册表,但是还有很多系统配置是使用
INI
文件
的。其实
INI
文件
就是简单的t...
【教程】MYSQL
中
my.
ini
配置
文件
内容
解读
上一篇我们讲解了如何在win11下同时安装MYSQL5.7.44和MYSQL8.0.33,供不同的学习需求使用教程MYSQL安装—windows11同时安装MySQL5.xx.xx、MySQL8.xx.xx本篇讲解一下安装mysql过程
中
的my.
ini
配置
文件
中
的详细
内容
文件
上传-.user.
ini
的妙用
小伙伴们大家好!本期为大家带来的是在
文件
上传漏洞
中
的妙用。.user.
ini
.user.
ini
的妙用原理利用.user.
ini
的环境实战演示1、先尝试直接上传webshell2、看是否能够上传除php和png外的
文件
3、上传.user.
ini
文件
4、再次尝试上传webshell5、测试上传的.user.
ini
与webshell是否能够正常生效6、使用连接工具连接webshell。
MySQL配置my.
ini
文件
my.
ini
文件
中
存储了数据库的
文件
地址,数据库数据存储地址以及登录密码等基础信息。sc delete mysql(注意,这里的mysql是你的数据库服务名称,不知道怎么看的win+R后输入services.msc回车,就能在名称那一列找到你的mysql名称)显示成功后在管理(win+R回车后输入services.msc,回车)里看一下,如果数据库在管理
中
仍然存在,右键选择停止。数据库在管理
中
消失。我的mysql目录下不允许生成新
文件
,所以我在别的地方新建my.
ini
,编辑好后直接复制到存放的目录下。
C#
111,119
社区成员
642,545
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章