2010-01-07 5 views
0

J'utilise IsloatedStorage dans une application Silverlight pour consigner des informations sur le client, et j'ai ajouté une fonction pour effacer le fichier journal. Cependant, j'ai eu des problèmes avec les deux approches que j'essayées:Silverlight IsolatedStorage: Supprimer ne fonctionne pas, Tronquer en laissant vide

approche un: utilisez

IsolatedStorageFile.DeleteFile("log.log"); 

Résultat: Cela échoue et renvoie une erreur « [IsolatedStorage_DeleteFile] » (Aucune autre info). La fonction fonctionne correctement sur les fichiers de test, par ex. DeleteFile("test.txt"), mais refuse de supprimer le journal. Je pensais que peut-être le journal est utilisé, et essayé de le fermer avec

IsolatedStorageFileStream.close() 

Mais cela renvoie une autre erreur « [IsolatedStorage_StoreNotOpen] ». Je sais qu'il est ouvert car la ligne de code précédente enregistre avec succès un message.

approche en deux: Ouvrez à nouveau le fichier journal à l'aide du mode fichier troncature,

_storageFileStream = new IsolatedStorageFileStream(logfilename, FileMode.Truncate, FileAccess.Write, FileShare.ReadWrite, _storageFile); 

Selon MSDN, tronquer « Indique que le système d'exploitation doit ouvrir un fichier existant Une fois ouvert, le fichier doit être tronqué. de sorte que sa taille est de zéro octet. " Cependant, il ouvre mon fichier journal et le remplit avec un espace vide! La taille de fichier est identique, le message de journal suivant est ajouté à la fin de tout l'espace.

Répondre

0

J'ai trouvé un moyen de le faire, non pas par la fermeture, mais en disposant:

IsolatedStreamWriter.Dispose();      
IsolatedStorageFile.DeleteFile("log.log"); 
IsolatedStorageFileStream = new IsolatedStorageFileStream(logfilename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite, _storageFile); 

n'a pas eu à travailler, mais pas besoin maintenant l'approche « tronquer ».

+0

Notez que si vous utilisez IsolatedStorage pour une application Windows Phone 7, le fichier FileMode.Truncate n'est pas pris en charge de toute façon. –

Questions connexes