如何解决从HoloLens 2访问计算机上的数据库文件
HoloLens文件访问
要点:
- HoloLens 2通过数据线插入计算机的设备
- 位于Environment.SpecialFolder.CommonApplicationData(C:/程序文件)下的该计算机上的现有SQLite DB
- 不幸的是,由于其他要求,该文件必须位于C:/ Program Files中,并且HL2可以访问该文件。
- HL2应用程序是使用Unity构建的,但是依赖于使用EFCore 3.1.4的私有DLL。此DLL有助于数据库操作并使用DbContext等。
当前,此DLL可与其他实际上已运行的应用程序一起使用 在客户端计算机(计算机)上运行,因此它们没有问题 尽可能通过文件路径连接到数据库。
我完成的研究
- https://web.archive.org/web/20190911081541/http://www.mtirion.nl/2017/10/accessing-the-filesystem-with-unity-and-c-on-hololens/
- https://docs.microsoft.com/en-us/windows/uwp/files/file-access-permissions
- https://longqian.me/2017/02/08/hololens-file-transfer/
主要要求/问题:
**
如何使用现有的DLL实现(下面的示例代码)来 实例化与计算机上驻留的数据库文件的连接 来自HoloLens ?此文件存储在C:/ Program Files /...
**
随附的现有代码示例
// <summary>
// Helper function to create a SQLite Database Connection
// </summary>
// <param name="dbPath">Path to the SQLite Database file</param>
// <param name="password">Password to Database</param>
public static SqliteConnection CreateDBConnection(string dbPath,string password)
{
// Create path if it doesn't exist
string path = Path.GetDirectoryName(dbPath);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
// Check if db file exists
if (!File.Exists(dbPath))
{
FileStream stream = File.Create(dbPath);
stream.Close();
}
SqliteConnection connection = new SqliteConnection("DataSource=" + dbPath + CommonStrings.DB_Semicolon);
connection.Open();
using (SqliteCommand command = connection.CreateCommand())
{
command.CommandText = "SELECT quote($password);";
command.Parameters.AddWithValue("$password",password);
string escapedPassword = (string)command.ExecuteScalar(); // Protects against SQL injection
command.Parameters.Clear();
command.CommandText = "PRAGMA key = " + escapedPassword + CommonStrings.DB_Semicolon;
command.ExecuteNonQuery();
}
return connection;
}
解决方法
我没有完全理解您的要求。据我了解,您想使用网络协议堆栈进行从HL到PC的USB-over-IP连接。现在尚未实现。
尤其是,如果没有PC上运行的服务器,就无法从Hololens访问PC。服务器应处理特定的USB端口命令以打开网络连接。在另一方,HL应该有一个客户端,可以通过USB对网络协议进行编码。
显然,这不是一个简单的方法。我建议打开从HL到PC的普通TCP / IP连接。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。