2011-08-19 19 views
8

Stavo leggendo sul namespace System.IO.IsolatedStorage in .NET e ho scoperto che posso usarlo per archiviare un file in una posizione univoca per il mio assembly o eseguibile. Ad esempio, il seguente codice:Qualcuno usa .NET System.IO.IsolatedStorage?

using System.IO.IsolatedStorage; 

public class Program 
{ 
    static void Main(string[] args) 
    { 
      IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForAssembly(); 
      store.CreateFile("myUserFile.txt"); 
    } 
} 

crea il file "myUserFile.txt" al seguente indirizzo:

C: \ Users \ Nick \ AppData \ Local \ IsolatedStorage \ bhxcjtkp.bpv \ wbjkcolm.3br \ StrongName.m2s0saaun2onmow3pd5pkml30lf2dobr \ AssemFiles

E utilizzando IsolatedStorageFile.GetMachineStoreForAssembly() crea una simile struttura di directory in C: \ ProgramData \ IsolatedStorage.

Posso vedere il vantaggio di lasciare che questa API crei un percorso di archiviazione per voi (non dover pensare a un percorso di file da soli). Ma sono rimasto sorpreso nel vedere che non c'erano altri file memorizzati in IsolatedStorage da altre applicazioni di terze parti (almeno non sul mio computer).

Invece, ho trovato alcuni programmi che memorizzano i file di configurazione e semplicemente in C: \ Users \ Nick \ AppData \ Local. Qualcuno sa di un motivo per cui i produttori di software potrebbero evitare di utilizzare IsolatedStorage? O stanno usando un'API diversa che memorizza i file in AppData?

+1

Sono quasi sicuro che molte persone utilizzano IS. – BoltClock

risposta

5

Una ragione per cui abbiamo trovato (nel modo più difficile) è che l'algoritmo utilizzato dalle applicazioni per identificare il percorso da utilizzare nell'archiviazione isolata dipende dalla versione dell'applicazione. L'installazione di una nuova versione dell'applicazione comporta l'impossibilità di accedere ai dati precedentemente archiviati. Sono sicuro che ci sono opzioni per far funzionare questo scenario, ma non siamo riusciti a trovarli e siamo semplicemente passati a un percorso di archiviazione costante.

+0

Interessante. È molto bello saperlo. –

+0

Alcune delle tecnologie Microsoft gestiscono automaticamente gli aggiornamenti di versione per te (come ClickOnce) – ghord

1

L'archiviazione isolata è ideale per le impostazioni dell'applicazione e dell'utente e per dati simili. Con "dati del genere" intendo i dati che non sono cruciali per l'applicazione (per i motivi per cui l'hai visto) ma utili per stare lontano dagli occhi degli utenti.

È molto facile cancellare lo spazio di archiviazione isolato, quindi aspettati sempre che questo accada e non rimarrai deluso.

+0

Grazie. Sembra un consiglio solido. –

Problemi correlati