Perhaps you're using low level configuration settings which are file-related. In such cases it's recommended to use the database configuration for the defragmentation process. Especially settings like string-encoding and block-size need to be configured properly for the defragmentation.
DefragmentConfig config = new DefragmentConfig("database.db4o");
// It's best to use the very same configuration you use for the regular database
IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration();
config.Db4oConfig(configuration);
Defragment.Defrag(config);
Dim config As New DefragmentConfig("database.db4o")
' It's best to use the very same configuration you use for the regular database
Dim configuration As IEmbeddedConfiguration = Db4oEmbedded.NewConfiguration()
config.Db4oConfig(configuration)
Defragment.Defrag(config)