私はwpfアプリケーションを持っています。SQL CEデータベースを使用します。
ユーザー固有のAppDataフォルダーにsdfファイルを作成しています。ただし、個々のアプリケーションの場合、これにより個々の sdf ファイルが作成されます。
私はこのことを望んでいません。すべてのユーザー/管理者が読み取り/書き込みアクセス許可を持つことができる共通のデータベースの場所が必要です。
そのようなシナリオに適した場所はどれですか?
私はwpfアプリケーションを持っています。SQL CEデータベースを使用します。
ユーザー固有のAppDataフォルダーにsdfファイルを作成しています。ただし、個々のアプリケーションの場合、これにより個々の sdf ファイルが作成されます。
私はこのことを望んでいません。すべてのユーザー/管理者が読み取り/書き込みアクセス許可を持つことができる共通のデータベースの場所が必要です。
そのようなシナリオに適した場所はどれですか?
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)
これにより、すべてのアプリ データが共有されるルート フォルダーが得られます。ここにアプリ用のサブフォルダーを作成し、そこにファイルを保存します。
残念ながら、利用可能な唯一の一般的な場所は、システムの ProgramData ディレクトリです。これは通常、vistaおよびSeven の「C:\ ProgramData 」の下にあります。
XPの場合は「C:\Documents and Settings\All Users\Application Data」です。
アプリケーションが管理モードで実行されている場合、読み取り/書き込みアクセス許可は必要ありません。
ただし、標準アカウントでアプリケーションを実行する予定がある場合は、書き込み権限が必要になる場合があります。ただし、システム UAC に依存します。
そのため、ProgramData の下にデータベース用のフォルダーを作成し、別のユーザーの他のすべてのアプリで使用すると想定されるデータベースをそこに配置し、すべてのユーザーに対してこのフォルダーへの書き込み/変更アクセス許可を付与することをお勧めします。