我正在使用IsolatedStorage来持久化对象,但有时我需要手动清除此目录中的文件。 当我持久保存文件时,我想将目录的物理位置写入控制台。似乎没有可访问的属性返回此信息。 我该怎么办?
这是我不完整的代码:
using (var store = IsolatedStorageFile.GetMachineStoreForAssembly())
{
Console.WriteLine("Persisting Hotel to {0}", store.<<INSERT APPROPRIATE PROPERTY>>);
}
答案 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();