如何解决此移动应用程序开发问题?
连接数据库时
dataSource = \\..datafile.sdf
我收到此错误
“未找到路径”
我正在使用serviceCE dll进行数据访问。
答案 0 :(得分:3)
Windows CE没有相对路径的概念,所以即使你“修复”了无效的相对路径,它也行不通。您必须使用绝对路径。
答案 1 :(得分:3)
您输入的路径是相对路径。 Windows CE / Mobile不支持相对路径。
由于Windows Mobile设备上没有当前目录的概念,如何找到只知道相对路径的资源? .Net程序始终可以访问组成它的模块(通常.Net组件由打包在DLL或EXE文件中的一个模块组成)。以下行将返回当前正在执行的程序集的绝对路径。
string modulePath = this.GetType()。Assembly.GetModules()[0] .FullyQualifiedName;
使用更多代码,您可以获得运行程序的目录
Path.GetDirectoryName(this.GetType()。Assembly.GetModules()[0] .FullyQualifiedName)
使用该信息,您可以为资源构建正确的路径字符串。
注意:如果您正在使用本机APIS进行开发,请使用以下命令: GetModuleFileName(GetModuleHandle(NULL),pszFullPath,MAX_PATH);
答案 2 :(得分:0)
我想在\\和..
之间缺少一些东西答案 3 :(得分:0)
“\ ..”没有意义。它表示您的数据比根文件夹高一级,但不存在。此外,ctacke在评论中告诉我CE无论如何都不支持相对路径。
如果您的操作系统支持相对路径 ,我的其余部分仍然适用。我将把它留待将来参考(可能,因为很多人似乎没有先阅读整篇文章而进行投票),但声誉有所下降。 : - )
如果数据文件比应用程序所在的文件夹高一级,则正确的路径为“.. \ datafile.sdf”;在某些编程语言中你必须逃避反斜杠,所以它会变成'.. \ datafile.sdf'
您的数据实际位于何处,您的应用在哪里?如果应用程序位于\ yourapp \ folder \ bin中,并且您的数据位于\ yourapp \ folder \ data中,则从应用程序到数据的路径将为“.. \ data \”。如果数据文件位于\ yourapp \文件夹中,则路径为“.. \”。同样,根据您使用的语言,您可能需要将反斜杠加倍才能使其反转。