2010-09-03 5 views
0

Je souhaite prendre un fichier déjà stocké dans le stockage isolé et le copier quelque part sur le disque.Comment obtenir un fichier et le sortir du stockage isolé?

IsolatedStorageFile.CopyFile("storedFile.txt","c:\temp") 

Cela ne fonctionne pas. Lève IsolatedStorageException et dit "Opération non autorisée"

+0

Si l'opération n'est pas autorisée, vous ne pouvez pas le faire. – SLaks

+1

Dans Silverlight ou dans une application de bureau .NET? – dthorpe

Répondre

0

Je ne vois rien dans les documents, autre que this, qui dit juste que "Certaines opérations ne sont pas permises", mais ne dit pas exactement quoi. Je suppose qu'il ne veut pas que vous copiez hors du stockage isolé à des emplacements arbitraires sur le disque. Les docs indiquent que la destination ne peut pas être un répertoire, mais même si vous corrigez cela, vous obtenez toujours la même erreur. Pour contourner ce problème, vous pouvez ouvrir le fichier, lire son contenu et l'écrire dans un autre fichier.

using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForAssembly()) 
{ 
    //write sample file 
    using (Stream fs = new IsolatedStorageFileStream("test.txt", FileMode.Create, store)) 
    { 
     StreamWriter w = new StreamWriter(fs); 
     w.WriteLine("test"); 
     w.Flush(); 
    } 

    //the following line will crash... 
    //store.CopyFile("test.txt", @"c:\test2.txt"); 

    //open the file backup, read its contents, write them back out to 
    //your new file. 
    using (IsolatedStorageFileStream ifs = store.OpenFile("test.txt", FileMode.Open)) 
    { 
     StreamReader reader = new StreamReader(ifs); 
     string contents = reader.ReadToEnd(); 
     using (StreamWriter sw = new StreamWriter("nonisostorage.txt")) 
     { 
      sw.Write(contents); 
     } 
    } 
} 
Questions connexes