【问题标题】:sqliteconnection over network shared path (Universal Windows Platform)网络共享路径上的 sqliteconnection(通用 Windows 平台)
【发布时间】:2018-05-13 01:09:33
【问题描述】:

尝试通过共享文件夹访问 sqlite 文件。
(目前是 Windows IOT 的默认共享文件夹)

string path = Settings.FullPathSQLite;
            //path  value is\\192.168.18.182\C$\Data\Users\DefaultAccount\AppData\Local\Packages\06fb6d66-31b3-4beb-893c-2e0d9fe465f1_3asabdzxmrwg6\LocalState\Project1\settings.sqlite

            var conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);

抛出错误。但文件位置正确。

"Could not open database file: \\\\192.168.18.182\\C$\\Data\\Users\\DefaultAccount\\AppData\\Local\\Packages\\06fb6d66-31b3-4beb-893c-2e0d9fe465f1_3asabdzxmrwg6\\LocalState\\Portaokul\\settings.sqlite (CannotOpen)"

我可以使用 StorageFile 或 StorageFolder 类访问文件。 但无法弄清楚如何修改 SQLite 连接路径。你有什么想法吗?

将网络路径附加到驱动器名称可能允许访问?所以例如。 “Z:\settings.sqlite”文件可通过普通桌面应用程序访问。但不适用于 UWP。

我发现的最接近的场景是;将文件复制到本地>修改>并上传回网络。 uwpc-copy-database-from-installed-location-to-local-folder

【问题讨论】:

  • 您的包清单中是否拥有所有正确的权限?通过本地网络访问文件需要一些特殊权限 IIRC。

标签: sqlite uwp windows-10-universal windows-10-iot-core storagefile


【解决方案1】:

在 UWP 中,应用程序默认可以访问某些文件系统位置,请参考 MSDN 中的File access permissions。即使您可以访问应用程序私有存储区域之外的文件夹,UWP 中的 SQLiteApi 也不支持需要文件名的 SQLite。目前,除了将数据库复制到 UWP 应用本地存储区域之外,似乎没有其他办法。

【讨论】:

  • 两年过去了,仍然没有一个好的方法来做到这一点。这就是为什么人们开始 UWP 项目,然后在 25 分钟后将它们扔进垃圾堆,然后去使用没有 4,592 个障碍的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多