7

我在 50% 的 WinXP SP3 机器上遇到了这个异常。我知道大约 260 个字符的路径长度限制,但是可以做什么?

我已经将文件命名为只有 2 个字符,没有任何子目录,但是在一半的 WinXP 机器上,IsolatedStorage 的路径已经超过 260 个字符。

4

1 回答 1

4

这个问题似乎没有真正的解决方案。Windows XP下独立存储的默认路径是<SYSTEMDRIVE>\Documents and Settings\\Local Settings\Application Data\Microsoft\Silverlight\是英文系统,已经很长了。在MSDN上有一篇关于使用独立存储和最佳实践的好文章。

当您使用隔离存储时,遵循这些准则将帮助您避免问题并充分利用隔离存储提供的保护。

  • 将所有对独立存储的调用包装在 try/catch 块中,以适应潜在的 IsolatedStorageExceptions,如果
    禁用独立存储或存储已被删除,则可能会抛出该异常。
  • 如果您的 Silverlight 应用程序需要在隔离存储中存储大量数据,请考虑将其托管在自己的站点上,这样它就不会影响站点上的其他应用程序,而其他应用程序也不会影响它。
  • 如果您有一组 Silverlight 应用程序需要在客户端上共享数据,请将它们托管在同一站点上。
  • 使隔离的存储路径尽可能小,以防止内部完整路径达到 260 个字符的限制。
  • 加密存储在隔离存储中的敏感数据。
  • 使用 IsolatedStorageSettings 将对象和简单设置存储在隔离存储中。
  • 如果您想使用基于文件和流的 API、存储大量数据或需要对隔离存储的内容进行细粒度控制,请使用 IsolatedStorageFile。

要绕过 PathToLongException,您可以首先检查 IsolatedStorage 的路径并使用内部映射将文件存储在 IsolatedStorage 中。如果到 IsolatedStorage 的路径本身太长,您应该考虑将 silverlight 应用程序托管在它自己的站点上并使用IsolatedStorageFile.GetUserStoreForSite

于 2011-08-15T09:45:22.783 回答