2010-08-05 6 views
3

J'utilise IsolatedStorage pour les objets persistants, mais de temps en temps j'ai besoin de nettoyer manuellement les fichiers de ce répertoire. Comme je persiste les fichiers, je veux écrire l'emplacement physique du répertoire à la console. Il ne semble pas être une propriété accessible qui renvoie cette information si. Comment dois-je faire?Comment déterminer l'emplacement du répertoire racine IsolatedStorageFile

Voici mon code incomplet:

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

Répondre

3

Eh bien, je n'ai pas essayé, mais j'ai trouvé un lien (n'a pas été facile à trouver) qui montre soi-disant comment faire: http://msmvps.com/blogs/angelhernandez/archive/2008/10/04/retrieving-file-path-from-isolatedstorage.aspx

Fondamentalement, la ligne clé du code semble être:

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

Je ne sais pas si des autorisations spéciales doivent être définies pour que cela fonctionne.

Ok, trouve aussi un stackoverflow connexe: Can I get a path for a IsolatedStorage file and read it from external applications?

1

Essayez ceci:

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();