Проблема с разделителем путей к файлам Silverlight

Я обнаружил, что при чтении из локального файла из Silverlight мы должны использовать специальный разделитель пути "/", отличный от обычного разделителя пути "\", иначе Silverlight не сможет получить связанный локальный файл, например, нам нужно записать как c:/test/abc.wmv, кроме записи как c:\test\abc.wmv.

Еще два вопроса,

  1. Любое простое решение использовать обычный разделитель файлов?

  2. C# File / FileInfo класс будет использовать нормальный разделитель пути для представления имени файла (полное имя пути), как изменить весь нормальный разделитель пути в этот специальный разделитель пути, чтобы Silverlight мог распознавать?

Я использую VSTS 2008 + C# + .Net 2.0.

спасибо заранее, Джордж

1 ответ

Вы можете использовать метод расширения:

public string ToSilverlightPath(this string s)
{
  return s.Replace("\\", "/");
}

или же

public string ToSilverlightPath(this Path p)
{
  return p.GetFullPath().Replace("\\", "/");
}

Редактировать:

Подумав об этом, еще немного Silverlight, вероятно, работает с URI.
То есть все пути в Silverlight являются URI.
Поэтому вместо использования Path вы, вероятно, должны использовать Uri, например:

Uri mySilverlightPath = new Uri(myPathString);

или же

Uri mySilverlightPath = new Uri(myPath.GetFullPath());

Хотя не уверен в этом, но, думаю, это будет иметь смысл.

Другие вопросы по тегам