Asp.net遍历ini配置文件节点下所有key和value

本文介绍了一个使用ASP.NET读取配置文件的方法,并将配置文件中特定节点的所有key-value对绑定到GridView控件的过程。通过遍历指定文件夹下的所有子文件夹,并从配置文件中获取相关信息,实现了数据的动态加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

asp.net遍历配置文件某一节点中所有key,value并且绑定到

Helper app_Helper = new Helper();

DataSet ds = new DataSet();

DataTable dt = new DataTable();
   
protected void Page_Load(object sender, EventArgs e)
{
    gvwBind();
}

#region 绑定GridView

/// <summary>
/// 绑定GridView
/// </summary>
protected void gvwBind()
{
    INI.INIPath iniINIPath = new INI.INIPath();
        INI.INIFile iniINIFile = new INI.INIFile(iniINIPath.getINIPath());

    string FolderNames = app_Helper.GetAllFolder(Server.MapPath("http://www.cnblogs.com/APPDIR"));//获得APPDIR文件夹下所有子文件夹名

    string[] FolderName = new string[FolderNames.Split(',').Length - 1];//声明个数组为了保存文件夹绝对路径

    FolderName = FolderNames.Split(',');//给文件夹绝对路径数组赋值

    dt.Columns.Add("LKNAME", typeof(string));
    dt.Columns.Add("qdjsjm", typeof(string));
    dt.Columns.Add("qdipdz", typeof(string));

    for (int i = 0; i < FolderName.Length - 1; i++)
    {
        DataRow row = dt.NewRow();

        FolderName[i] = FolderName[i].Substring(FolderName[i].LastIndexOf('\\') + 1);//截取文件夹名

        row["LKNAME"] = FolderName[i];//给 LKNAME 字符赋值

        if (!iniINIFile.IniReadValue("dzjclkzp", FolderName[i]).Equals(""))//配置文件中是否存在相同文件夹名的key
        {
            row["qdjsjm"] = iniINIFile.IniReadValue("dzjclkzp", FolderName[i]).Split(',')[0];//给qdjsjm字段赋值
            row["qdipdz"] = iniINIFile.IniReadValue("dzjclkzp", FolderName[i]).Split(',')[1];//给qdipdz字段赋值
        }

        dt.Rows.Add(row);
    }

    gvwGKWH.DataSource = dt;//绑定到数组
    gvwGKWH.DataBind();风之境地 java-javascript 蘑菇街女装
}

#endregion 绑定GridView

转载于:https://www.cnblogs.com/sky7034/archive/2011/04/06/2006391.html

ini读写代码详解实例,有很详细注释,保证满意; 预览截取一部分代码: /// <summary>   /// 读取INI文件中指定INI文件中的所有节点名称(Section)   /// </summary>   /// <param name="iniFile">Ini文件</param>   /// <returns>所有节点,没有内容返回string[0]</returns>   public static string[] INIGetAllSectionNames(string iniFile) { uint MAX_BUFFER = 32767; //默认为32767   string[] sections = new string[0]; //返回值   //申请内存   IntPtr pReturnedString = Marshal.AllocCoTaskMem((int)MAX_BUFFER * sizeof(char)); uint bytesReturned = GetPrivateProfileSectionNames(pReturnedString, MAX_BUFFER, iniFile); if (bytesReturned != 0) { //读取指定内存的内容   string local = Marshal.PtrToStringAuto(pReturnedString, (int)bytesReturned).ToString(); //每个节点之间用\0分隔,末尾有一个\0   sections = local.Split(new char[] { '\0' }, StringSplitOptions.RemoveEmptyEntries); } //释放内存   Marshal.FreeCoTaskMem(pReturnedString); return sections; } /// <summary>   /// 获取INI文件中指定节点(Section)中的所有条目(key=value形式)   /// </summary>   /// <param name="iniFile">Ini文件</param>   /// <param name="section">节点名称</param>   /// <returns>指定节点中的所有项目,没有内容返回string[0]</returns>   public static string[] INIGetAllItems(string iniFile, string section) { //返回值形式为 key=value,例如 Color=Red   uint MAX_BUFFER = 32767; //默认为32767   string[] items = new string[0]; //返回值   //分配内存   IntPtr pReturnedString = Marshal.AllocCoTaskMem((int)MAX_BUFFER * sizeof(char)); uint bytesReturned = GetPrivateProfileSection(section, pReturnedString, MAX_BUFFER, iniFile); if (!(bytesReturned == MAX_BUFFER - 2) || (bytesReturned == 0)) { string returnedString = Marshal.PtrToStringAuto(pReturnedString, (int)bytesReturned); items = returnedString.Split(new char[] { '\0' }, StringSplitOptions.RemoveEmptyEntries); } Marshal.FreeCoTaskMem(pReturnedString); //释放内存   return items; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值