richardli79

导航

自己写的一个配置文件读取类

出于工作需要,需要读取本机配置文件,没有现成的配置文件读取类,就自己写了一个,也没有按照什么规范,能用就行。

public class ConfigFile
    
{
        
private static string CurrentFile;
        
private static string BaseFile = DBCommon.AppPath + @"\config.bas";
        
private static XmlDocument m_ConfigFile = new XmlDocument();
        
private static XmlNode m_CurrentNode;
        
//        private static ConfigFile()
        
//        {
        ////        }
        //        private static XmlElement m_RootElement;
        public static bool OpenConfigFile( string _file )
        
{
            
try
            
{
                
if!File.Exists( _file ) )
                
{
                    _file 
= DBCommon.DataPath + @"\" + _file;
                    
if!File.Exists( _file ) )
                        File.Copy( BaseFile, _file , 
true );
                }

                CurrentFile 
= _file;
                FileStream fs;
                XmlTextReader xtr;
                fs 
= new FileStream( _file, FileMode.Open, FileAccess.ReadWrite );
                xtr 
= new XmlTextReader(fs);
                m_ConfigFile.Load( xtr );
                m_CurrentNode 
= m_ConfigFile.FirstChild;
                xtr.Close();
                fs.Close();
                
return true;
            }

            
catch( Exception)
            
{
                
return false;
            }

        }


        
public static bool GetRootName( ref string _rootName )
        
{
            
if( m_ConfigFile.Name.Length > 0 )
            
{
                _rootName 
= m_ConfigFile.Name;
                
return true;
            }

            
else
                
return false;
        }

        
public static bool GetValue( string _name, ref string _value )
        
{
            
if( m_CurrentNode.HasChildNodes )
            
{
                
foreach( XmlNode _Node in m_CurrentNode.ChildNodes )
                
{
                    
if( _Node.Name.ToUpper().Equals( _name.ToUpper() ) )
                    
{
                        _value 
= _Node.InnerText;
                        
return true;
                    }

                }

            }

            
return false;
        }

        
public static bool GetValue( string _node, string _name, ref string _value )
        
{
            
try
            
{
                
foreach( XmlNode _Node in m_ConfigFile.ChildNodes )
                
{
                    
if( _Node.Name.ToUpper().Equals( _node.ToUpper() ))
                    
{
                        
foreach( XmlNode _childnode in _Node.ChildNodes )
                        
{
                            
if( _childnode.Name.ToUpper().Equals( _name.ToUpper() ) )
                            
{
                                _value 
=_childnode.InnerText;
                                
return true;
                            }

                        }

                    }

                }

                
return false;
            }

            
catch( Exception)
            
{
                
return false;
            }

        }

        
public static bool SetValue( string _name, string _value )
        
{
            
try
            
{
                
if( m_CurrentNode.HasChildNodes )
                
{
                    
foreach( XmlNode _Node in m_CurrentNode.ChildNodes )
                    
{
                        
if( _Node.Name.ToUpper().Equals( _name.ToUpper() ) )
                        
{
                            _Node.InnerText 
= _value.ToUpper();
                            
return true;
                        }

                    }

                    XmlElement newElement 
= m_ConfigFile.CreateElement( _name );
                    newElement.InnerText 
= _value;
                    m_CurrentNode.AppendChild( newElement );

                }

                
return false;
            }

            
catch( Exception)
            
{
                
return false;
            }

        }

        
public static bool SetValue( string _node, string _name, string _value )
        
{
            
try
            
{
                
foreach( XmlNode _Node in m_ConfigFile.ChildNodes )
                
{
                    
if( _Node.Name.ToUpper().Equals( _node.ToUpper() ))
                    
{
                        
foreach( XmlNode _childnode in _Node.ChildNodes )
                        
{
                            
if( _childnode.Name.ToUpper().Equals( _name.ToUpper() ) )
                            
{
                                _childnode.InnerText 
= _value;
                                
return true;
                            }

                        }

                        XmlElement newElement 
= m_ConfigFile.CreateElement( _name );
                        newElement.InnerText 
= _value;
                        _Node.AppendChild( newElement );
                    }

                }

                
return false;
            }

            
catch( Exception)
            
{
                
return false;
            }

        }

        
public static bool SaveConfigFile( string _file )
        
{
            
try
            
{
                XmlTextWriter xtr;
                xtr 
= new XmlTextWriter( _file, System.Text.Encoding.Unicode );
                m_ConfigFile.WriteTo( xtr );
                
return true;
            }

            
catch( Exception )
            
{
                
return false;
            }

        }

        
public static bool SaveConfigFile()
        
{
            
try
            
{
                
if( File.Exists( CurrentFile ) )
                
{
                    XmlTextWriter xtr;
                    xtr 
= new XmlTextWriter( CurrentFile, System.Text.Encoding.Unicode );
                    m_ConfigFile.WriteTo( xtr );
                    
return true;
                }

                
else
                    
return false;
            }

            
catch( Exception )
            
{
                
return false;
            }

        }

    }

posted on 2005-05-20 16:53  Richard  阅读(563)  评论(0编辑  收藏  举报