Silverlight IsolatedStorage PathTooLongException

时间:2011-08-15 07:45:11

标签: silverlight windows-xp isolatedstorage pathtoolongexception

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

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

1 个答案:

答案 0 :(得分:4)

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

使用隔离存储时,遵循这些指南可帮助您避免出现问题并充分利用隔离存储提供的保护。

  • 将所有对try / catch块内的隔离存储的调用包装起来 对潜在的IsolatedStorageExceptions具有弹性,可以抛出,如果 隔离存储是
         已禁用或商店已被删除。
  • 如果您的Silverlight应用程序需要存储大量数据 隔离存储,      考虑在自己的网站上托管它,以免影响 其他应用程序      网站和其他应用程序不会影响它。
  • 如果您有一组需要的Silverlight应用程序 分享数据      客户端,将它们托管在同一网站上。
  • 保持隔离的存储路径尽可能小以防止 内部完整路径      从达到260个字符的限制。
  • 加密存储在独立存储中的敏感数据。
  • 使用IsolatedStorageSettings存储对象并简单 隔离存储设置。
  • 如果要使用文件和,请使用IsolatedStorageFile 基于流的API,正在存储      大量数据,或需要细粒度控制 孤立的内容      存储

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