public static void DeleteDatabase(string filename) { // TODO: Consider passing in vfs name var ptrVfs = NativeMethods.sqlite3_vfs_find(IntPtr.Zero); var ptrFilename = MarshalEx.StringToHGlobalUTF8(filename); try { var vfs = Marshal.PtrToStructure <sqlite3_vfs>(ptrVfs); vfs.xDelete(ptrVfs, ptrFilename, 1); } finally { if (ptrFilename != IntPtr.Zero) { Marshal.FreeHGlobal(ptrFilename); } } }