@@ -88,6 +88,8 @@ class SqflitePlugin : public flutter::Plugin {
8888 OnCloseDatabaseCall (method_call, std::move (result));
8989 } else if (method_name == sqflite_constants::kMethodDeleteDatabase ) {
9090 OnDeleteDatabase (method_call, std::move (result));
91+ } else if (method_name == sqflite_constants::kMethodDatabaseExists ) {
92+ OnDatabaseExistsCall (method_call, std::move (result));
9193 } else if (method_name == sqflite_constants::kMethodGetDatabasesPath ) {
9294 OnGetDatabasesPathCall (method_call, std::move (result));
9395 } else if (method_name == sqflite_constants::kMethodOptions ) {
@@ -513,6 +515,19 @@ class SqflitePlugin : public flutter::Plugin {
513515 result->Success ();
514516 }
515517
518+ void OnDatabaseExistsCall (
519+ const flutter::MethodCall<flutter::EncodableValue> &method_call,
520+ std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result) {
521+ flutter::EncodableMap arguments =
522+ std::get<flutter::EncodableMap>(*method_call.arguments ());
523+ std::string path;
524+ GetValueFromEncodableMap (arguments, sqflite_constants::kParamPath , path);
525+
526+ std::filesystem::path filesystem_path (path);
527+ bool exists = std::filesystem::exists (filesystem_path);
528+ result->Success (flutter::EncodableValue (exists));
529+ };
530+
516531 flutter::EncodableValue MakeOpenResult (int database_id, bool recovered,
517532 bool recovered_in_transaction) {
518533 flutter::EncodableMap response;
0 commit comments