3

Я скопировал код из тестового приложения:Как указать путь к файлу на устройстве Windows CE?

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 (папка, в которой развертываются ех, который не имеет подпапок)), я получаю «путь не найден» или «путь недействителен» или что-то подобное.

Как мне обозначить путь?

ответ

5

Это не совсем понятно, что вы пытаетесь сделать, так вот некоторые общие указатели:

  1. Windows CE не понимает относительные пути. Период. Таким образом, все пути должны начинаться с символа обратной косой черты (\).
  2. «Компьютер» вряд ли будет частью пути на вашем устройстве. Используйте Explorer на устройстве ansd, посмотрите путь туда. То, что вам нужно, вероятно, что-то вроде \Program Files\hhs\mydatabase.sdf
  3. Пути рабочего стола к устройству не являются фактическими путями. Это оболочка оболочки. Путь на ПК, такой как My Device\Program Files\foo.bar, не является трактом, разрешаемым любыми файловыми API на рабочем столе. Если вы хотите получить доступ к файлу устройства из приложения PC, вы должны использовать что-то вроде RAPI, чтобы вытащить файл локально, а затем использовать локальную копию
+0

"Компьютер" * * является то, что Проводник Windows на рабочем столе сказал, но с самого устройства, это «\\ Program Files \\ HHS \ DBPlatypus.sdf «и это прекрасно работает; благодаря! –

+0

Windows CE не понимает относительные пути, поскольку в Windows CE нет понятия «Текущий каталог для процесса». –

1

, если вы хотите работать на устройстве используйте этот код:

Const строка sdfPath = System.IO.Path.GetDirectoryName (System.Reflection.Assembly.GetExecutingAssembly(). GetName(). CodeBase + @ "\ FolderName \ Имя файла. *"

, но вам необходимо скопировать FolderName to device on Файл программы путь см. Изображения f старше пример:

Connect to your device

Show images folder example

+1

Добро пожаловать в переполнение стека! При предоставлении ответа предпочтительнее дать [некоторое объяснение относительно ПОЧЕМУ ваш ответ] (http://stackoverflow.com/help/how-to-answer). –

Смежные вопросы