【问题标题】:Access Denied when creating SQLite DB file创建 SQLite DB 文件时拒绝访问
【发布时间】:2019-11-29 05:19:44
【问题描述】:

我正在尝试创建数据库文件以对其进行初始化,但在执行过程中出现“拒绝访问”错误。我认为这与权限有关,但我找不到任何可以修复它的信息,因为我检查的每个指南都以相同的方式进行。 这是一个使用 C# 和 SQLite 库的 UWP 应用程序。提前感谢您的帮助。

过去我也尝试过使用其他方法创建 json 文件,但我从未能够从 UWP 应用程序创建文件

引发错误的代码:

private const string DBName = "data.sqlite";

if (!File.Exists(Path.GetFullPath(DBName)))
{
    SQLiteConnection.CreateFile(DBName);
    RecentlyCreated = true;
}

错误信息:

System.UnauthorizedAccessException: '访问路径'C:\Users\myuser\source\repos\Pass\Pass\bin\x64\Debug\AppX\dataAccount.sqlite' 被拒绝。'

【问题讨论】:

    标签: c# sqlite uwp


    【解决方案1】:

    UWP 对用户文件系统的访问非常有限,如 File access permissions 规范中所述。您可以使用用户库(下载、文档)来存储数据(在允许访问appxmanifest 文件之后)或应用程序数据存储(在您的情况下更可行)。尝试将DBName 定义为

    string DBName = ApplicationData.Current.LocalFolder.Path + @"\data.sqlite";
    

    或者您可以使用上面的链接允许broadFileSystemAccess

    【讨论】:

    • 默认工作目录是安装位置,只读。还要确保检查 SQLite 文档 re: temp 目录。
    • 抱歉这么晚才回复,最近比较忙。无论如何,您的帮助非常有用,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 2018-07-13
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 2021-02-22
    相关资源
    最近更新 更多