Paolo Pialorsi

SOA, Workflow Foundation (WF), Windows Communication Foundation (WCF) e le Architetture Distribuite

Percorso assoluto dei file con IsolatedStorage

Segnalo nel blog una risposta che ho appena mandato via email a un lettore di VBJ che mi ha chiesto come sia possibile leggere da IsolatedStorage il percorso assoluto di un file o di un folder.

Che io sappia un metodo pubblico per farlo non c'è, però esiste un metodo internal di nome GetFullPath che fa al caso nostro. Per chiamarlo dobbiamo appoggiarci  a un po' di Reflection:

            MethodInfo mi = isoFile.GetType().GetMethod("GetFullPath", BindingFlags.NonPublic | BindingFlags.Instance);
            object[] parameters = new object[1] { "Files/Ordini/Ordine01.txt" } ;
            string fullPath = StringType.FromObject(mi.Invoke(isoFile, parameters));

Come tutte le volte che si utilizza Reflection, in particolare su membri privati o internal, bisogna assumersi la responsabilità di ciò che si fa, perchè il codice privato/internal potrebbe essere cambiato senza alcun preavviso.
Inoltre in generale non è una buona regola accedere ai file dell'IsolatedStorage usandone il path assoluto, altrimenti perchè dovremmo usare l'IsolatedStorage?

Come poi giustamente mi segnala Marco via email: i diritti necessari a fare quell'operazione (e probabilmente per accedere al file con un percorso assoluto) difficilmente sono quelli di "Local Intranet" o "Internet".

Posted: gen 19 2005, 12.10 by paolo
Filed under: ,