• 转:加载和保存站点值到配置文件


            // ---------------------------
            // set default values for site
            // ---------------------------
            string Host = null;
            int Port = 21;
            string Login = "";
            string Password = "";
            string UploadDir = null;
            string NoModifyDir = "/";
            int Timeout = 10000;
            bool Passive = true;
            string Proxy = null;
            bool ProxyEnabled = false;
            int ProxyPort = 3128;
            string ProxyUser = null;
            string ProxyPassword = null;
            int ProxyType = 1;
            const string CONFIGFILE = "config.xml";        // xml file consisting of settings        
    
            /// <summary>
            /// 从配置文件加载站点属性值
            /// </summary>
            private void LoadConfig()
            {
                // ----------------
                // read config file
                // ----------------
                DataSet ds = new DataSet();
                try
                {
                    if (!File.Exists(CONFIGFILE))
                        return;
                    ds.ReadXml(CONFIGFILE);
                    NoModifyDir = "/";
                    Timeout = 10000;
                    Proxy = null;
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        string item = dr["value"].ToString();
                        switch (dr["name"].ToString().ToLower())
                        {
                            case "host":
                                Host = item;
                                break;
                            case "login":
                                Login = item;
                                break;
                            case "port":
                                {
                                    try
                                    {
                                        Port = Int32.Parse(item);
                                    }
                                    catch
                                    {
                                        Port = 21; // default
                                    }
                                    break;
                                }
                            case "password":
                                Password = EncodePassword(item);
                                break;
                            case "passive":
                                Passive = (item.ToLower() == "false" ? false : true);
                                break;
                            case "proxy":
                                Proxy = item;
                                break;
                            case "proxylogin":
                                ProxyUser = item;
                                break;
                            case "proxypassword":
                                ProxyPassword = EncodePassword(item);
                                break;
                            case "proxyenabled":
                                ProxyEnabled = (item.ToLower() == "false" ? false : true);
                                break;
                            case "proxyport":
                                {
                                    try
                                    {
                                        ProxyPort = Int32.Parse(item);
                                    }
                                    catch
                                    {
                                        ProxyPort = 3128; // default
                                    }
                                    break;
                                }
                            case "proxytype":
                                {
                                    try
                                    {
                                        ProxyType = Int32.Parse(item);
                                    }
                                    catch
                                    {
                                        ProxyType = 1; // default
                                    }
                                    break;
                                }
                        }
                    }
                }
                catch
                {
                    Console.WriteLine("* config file read error");
                }
            }
    
            /// <summary>
            /// encoded/normal texts transfer to normal/encoded ones
            /// </summary>
            /// <param name="password">encoded/normal text</param>
            /// <returns></returns>
            private string EncodePassword(string password)
            {
                const byte MAGICNUMBER = 42; // XOR value for password encoded/decode process
                string encodedString = "";
                foreach (char signs in password)
                {
                    char sign = (char)(signs ^ MAGICNUMBER);
                    encodedString += sign.ToString();
                }
                return encodedString;
            }
    
            /// <summary>
            /// 保存站点值到配置文件
            /// </summary>
            private void SaveConfig()
            {
                DataSet ds = new DataSet("configuration");
                try
                {
                    ds.Tables.Add("key");
                    ds.Tables[0].Columns.Add("name");
                    ds.Tables[0].Columns.Add("value");
                    DataRow[] dr = new DataRow[11];
                    dr[0] = ds.Tables[0].NewRow();
                    dr[1] = ds.Tables[0].NewRow();
                    dr[2] = ds.Tables[0].NewRow();
                    dr[3] = ds.Tables[0].NewRow();
                    dr[4] = ds.Tables[0].NewRow();
                    dr[5] = ds.Tables[0].NewRow();
                    dr[6] = ds.Tables[0].NewRow();
                    dr[7] = ds.Tables[0].NewRow();
                    dr[8] = ds.Tables[0].NewRow();
                    dr[9] = ds.Tables[0].NewRow();
                    dr[10] = ds.Tables[0].NewRow();
                    ds.Tables[0].Clear();
                    dr[0]["name"] = "host";
                    dr[0]["value"] = Host;
                    dr[1]["name"] = "login";
                    dr[1]["value"] = Login;
                    dr[2]["name"] = "port";
                    dr[2]["value"] = Port;
                    dr[3]["name"] = "password";
                    dr[3]["value"] = EncodePassword(Password);
                    dr[4]["name"] = "passive";
                    dr[4]["value"] = Passive;
                    dr[5]["name"] = "proxyenabled";
                    dr[5]["value"] = ProxyEnabled;
                    dr[6]["name"] = "proxy";
                    dr[6]["value"] = Proxy;
                    dr[7]["name"] = "proxyport";
                    dr[7]["value"] = ProxyPort;
                    dr[8]["name"] = "proxytype";
                    dr[8]["value"] = ProxyType;
                    dr[9]["name"] = "proxylogin";
                    dr[9]["value"] = ProxyUser;
                    dr[10]["name"] = "proxypassword";
                    dr[10]["value"] = ProxyPassword;
                    ds.Tables[0].Rows.Add(dr[0]);
                    ds.Tables[0].Rows.Add(dr[1]);
                    ds.Tables[0].Rows.Add(dr[2]);
                    ds.Tables[0].Rows.Add(dr[3]);
                    ds.Tables[0].Rows.Add(dr[4]);
                    ds.Tables[0].Rows.Add(dr[5]);
                    ds.Tables[0].Rows.Add(dr[6]);
                    ds.Tables[0].Rows.Add(dr[7]);
                    ds.Tables[0].Rows.Add(dr[8]);
                    ds.Tables[0].Rows.Add(dr[9]);
                    ds.Tables[0].Rows.Add(dr[10]);
                    ds.WriteXml(CONFIGFILE, XmlWriteMode.IgnoreSchema);
                }
                catch
                {
                    Console.WriteLine("* config file not saved");
                }
            }
  • 相关阅读:
    待解决的问题
    Java编译环境的搭建(eclipse)
    Ubuntu升级没有声音的解决方法
    Ubuntu中文输入法的添加
    apue和error
    韦东山linux学习之ubuntu 9.10 软件源 问题
    查询表的列名
    事务管理
    数组 String[]
    java 内存
  • 原文地址:https://www.cnblogs.com/lusunqing/p/3150782.html
Copyright © 2020-2023  润新知