Load() public method

public Load ( FileInfo _FileName ) : void
_FileName System.IO.FileInfo
return void
Ejemplo n.º 1
0
        private void buttonLoadDatabase_Click( object sender, EventArgs e )
        {
            if ( m_Database != null && m_Database.Entries.Length > 0 )
            {	// Caution!
                if ( MessageBox( "Loading a new database will lose existing database data, do you wish to continue?", MessageBoxButtons.YesNo, MessageBoxIcon.Warning ) != DialogResult.Yes )
                    return;
            }

            string	OldFileName = GetRegKey( "DatabaseFileName", Path.Combine( m_ApplicationPath, "Database.rdb" ) );
            openFileDialogDatabase.InitialDirectory = Path.GetFullPath( OldFileName );
            openFileDialogDatabase.FileName = Path.GetFileName( OldFileName );
            if ( openFileDialogDatabase.ShowDialog( this ) != DialogResult.OK )
                return;

            SetRegKey( "DatabaseFileName", openFileDialogDatabase.FileName );

            try
            {
                Database	D = new Database();
                try
                {
                    D.Load( new FileInfo( openFileDialogDatabase.FileName ) );
                }
                catch ( Database.InvalidDatabaseRootPathException _e )
                {
                    MessageBox( "The database could not be opened completely as it did not manage to reconnect manifest files on disk based on its embedded location path.\nConsider changing the root folder location to a valid path.\n\nError: " + _e.Message, MessageBoxButtons.OK, MessageBoxIcon.Warning );
                }

                if ( m_Database != null )
                    m_Database.Dispose();

                Database = D;

                // Update UI
                textBoxDatabaseFileName.Text = openFileDialogDatabase.FileName;
                UpdateDatabaseEntries();
            }
            catch ( Exception _e )
            {
                MessageBox( "An error occurred while opening the database:\n\n", _e );
            }
        }