0

XAML と C# を使用して Windows 8 ストア アプリを作成しており、ターゲット デバイスは Windows Surface タブレットです。

私のアプリケーションでは、SQLite データベースを使用しています。

データベースを作成/ロードするには、次のコードを使用します。

DBPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "MyDatabase.sqlite");

ただし、データベースを Documents フォルダーに保存したいので、次のコード行を試して上記の行を置き換えました。

DBPath = Path.Combine(Windows.Storage.KnownFolders.DocumentsLibrary.Path, "MyDatabase.sqlite");

これを試すと、次のエラーが表示されます。

WinRT information: Access to the specified location (DocumentsLibrary) requires a capability to be declared in the manifest.

そこで、Package.appxmanifest を開き、[機能] の下の [ドキュメント ライブラリ] を選択し、[宣言] タブの下に [ファイル タイプの関連付け] を追加しました。次に、[プロパティ] の下で、[名前] ボックスに sqlite と入力し、[ファイルの種類] ボックスに .sqlite と入力しました。Package.appxmanifest 画面に他の情報を入力していません。

アプリを実行すると、次のエラーが表示されます。

Could not open database file: MyDatabase.sqlite (CannotOpen)

Windows.Storage.KnownFolders.DocumentsLibrary.Path を調べると、"" と等しくなります。ここで完全な場所のパスを期待していたでしょう。

SQLite データベースをドキュメント フォルダに保存したことのある人はいますか?

前もって感謝します。

4

1 に答える 1

0

KnownFolders.DocumentsLibrary仮想の場所であるため、パスはありません。詳細については、この回答をご覧ください。これにより、少なくともsqlite-netライブラリで利用可能な API を使用して、そこで SQLite データベースを開くことができなくなる可能性があります。

また、Windows ストア アプリでドキュメント ライブラリへのアクセスを使用する前に、この機能を備えたアプリをストアに公開するには、会社のアカウントが必要であることに注意してください。個人アカウントでは、そのような申請は拒否されます。

于 2013-03-28T06:38:22.807 に答える