如何确定IsolatedStorageFile根目录的位置

时间:2010-08-05 23:58:51

标签: .net isolatedstorage

我正在使用IsolatedStorage来持久化对象,但有时我需要手动清除此目录中的文件。 当我持久保存文件时,我想将目录的物理位置写入控制台。似乎没有可访问的属性返回此信息。 我该怎么办?

这是我不完整的代码:

using (var store = IsolatedStorageFile.GetMachineStoreForAssembly())
{
   Console.WriteLine("Persisting Hotel to {0}", store.<<INSERT APPROPRIATE PROPERTY>>);
}

2 个答案:

答案 0 :(得分:3)

好吧,我没有试过这个,但我确实找到了一个链接(不容易找到),据说可以说明如何做到这一点:http://msmvps.com/blogs/angelhernandez/archive/2008/10/04/retrieving-file-path-from-isolatedstorage.aspx

基本上代码的关键行似乎是:

fileName = isoStore.GetType.GetField("m_RootDir",Reflection.BindingFlags.NonPublic or Reflection.BindingFlags.Instance).GetValue(isoStore).ToString

我不确定是否必须设置任何特殊权限才能使其生效。

好的,还找到了相关的stackoverflow:Can I get a path for a IsolatedStorage file and read it from external applications?

答案 1 :(得分:1)

试试这个:

using System.IO.IsolatedStorage;
using System.Reflection;

var store = IsolatedStorageFile.GetMachineStoreForAssembly();
var pathName = store.GetType().GetField("m_RootDir", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(store).ToString();