Silverlight IsolatedStorage PathTooLongException - PullRequest
7 голосов
/ 15 августа 2011

Я получаю это исключение на 50% машин WinXP SP3.Я знаю ограничение длины пути в 260 символов, , но что можно сделать?

Я уже называю файлы только для 2 символов без каких-либо подкаталогов, но путь к IsolatedStorage уже превышает 260символы на половине машин WinXP.

1 Ответ

4 голосов
/ 15 августа 2011

Кажется, нет реального решения этой проблемы.Путь по умолчанию для изолированного хранилища в Windows XP - \ Documents and Settings \\ Local Settings \ Application Data \ Microsoft \ Silverlight \ - в английской системе, что уже очень долго.На MSDN - хорошая статья об использовании изолированного хранилища и рекомендациях.

При использовании изолированного хранилища следование этим рекомендациям поможет вам избежать проблем и максимально использовать защиту, обеспечиваемую изолированным хранилищем..

  • Обернуть все вызовы изолированного хранилища в блоки try / catch для обеспечения устойчивости к потенциальным исключениям IsolatedStorageExceptions, которые могут быть выброшены, если изолированное хранилище отключено
    или хранилище удалено.
  • Если вашему приложению Silverlight необходимо хранить большое количество данных в изолированном хранилище, рассмотрите возможность размещения его на своем собственном сайте, чтобы оно не влияло на другие приложения на сайте, а другие приложения не влияли на него.
  • Если у вас есть группа приложений Silverlight, которым необходимо совместно использовать данные на клиенте, разместите их на том же сайте.
  • Сохраняйте как можно меньше изолированных путей хранения, чтобы внутренний полный путь не достигалОграничение 260 символов.
  • Шифрование хранилища конфиденциальных данныхредактируется в изолированном хранилище.
  • Используйте IsolatedStorageSettings для хранения объектов и простых настроек в изолированном хранилище.
  • Используйте IsolatedStorageFile, если вы хотите использовать файловые и потоковые API, хранящие большие объемы данных,или вам нужен детальный контроль над содержимым изолированного хранилища.

Чтобы обойти исключение PathToLongException, вы можете сначала проверить путь к изолированному хранилищу и использовать внутреннее сопоставление для хранения ваших файлов в изолированном хранилище.Если сам путь к IsolatedStorage слишком длинный, вам следует рассмотреть возможность размещения приложения silverlight на собственном сайте и использовать IsolatedStorageFile.GetUserStoreForSite .

...