如何在Windows CE设备上指定文件的路径?

时间:2013-11-26 22:19:18

标签: c# sql-server-ce windows-ce filepath windows-embedded-compact

我复制了测试应用中的一些代码:

const string sdfPath = @"C:\WebAPIClient\WebAPIClient\bin\Debug\DBPlatypusCompactDB.sdf";
string dataSource = string.Format("Data Source={0}", sdfPath);
int countAdded = 0;

    if (!File.Exists(sdfPath))
. . .

......在那里工作得很好;但是在尝试转换它以便在将在Windows CE设备上运行的项目中使用时:

const string sdfPath = @"Computer\WindowsCE\\\Program Files\hhs\DBPlatypusCompactDB.sdf";            
. . .

...(这是我从Windows资源管理器(部署了exe的文件夹,没有子文件夹)复制的路径),我得到“路径未找到”或“路径无效”或类似的东西。

我如何指定路径?

2 个答案:

答案 0 :(得分:5)

目前还不清楚你要做什么,所以这里有一些一般性的指示:

  1. Windows CE无法理解相对路径。期。因此,所有路径必须以反斜杠(\)字符开头。
  2. “计算机”极不可能成为您设备路径的一部分。在设备上使用资源管理器查看那里的路径。您所追求的可能是\Program Files\hhs\mydatabase.sdf
  3. 设备的桌面路径不是实际路径。它们是shell插件技巧。像My Device\Program Files\foo.bar这样的PC上的路径不是桌面上任何文件API可解析的路径。如果要从PC应用程序访问设备文件,则必须使用RAPI之类的东西在本地提取文件,然后使用本地副本

答案 1 :(得分:1)

如果您想在设备上运行,请使用以下代码:

const string sdfPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly()。GetName()。CodeBase + @“\ FolderName \ Filename。*”

但是,您需要将 FolderName 复制到程序文件路径上的设备,请参阅图片文件夹示例:

Connect to your device

Show images folder example