Mon équipe a besoin d'un moyen pare-balles pour enregistrer un fichier (moins de 100 Ko) sur Windows 10 IOT.Enregistrer en toute sécurité un fichier sous Windows 10 IOT
Le fichier ne peut pas être corrompu, mais il est correct de perdre la version la plus récente si sauvegarde a échoué en raison de la mise hors tension, etc.
Puisque nous ne savons pas comment le fichier IO a changé de manière significative (plus File.Replace) pour y arriver.
Nous pouvons voir que:
var file = await folder.CreateFileAsync(fileName, CreationCollisionOption.OpenIfExists);
await Windows.Storage.FileIO.WriteTextAsync(file, data);
est fiable peu fiable (il a cassé à plusieurs reprises lors de l'arrêt de débogage, ou réinitialiser l'appareil.) Et nous termine avec un fichier corrompu (plein de zéros) et et Fichier .tmp à côté de lui. Nous pouvons récupérer ce fichier .tmp Je ne suis pas convaincu que nous devrions baser notre solution sur un comportement non documenté.
Une façon que nous voulons essayer est:
var tmpfile = await folder.CreateFileAsync(fileName+".tmp",
CreationCollisionOption.ReplaceExisting);
await Windows.Storage.FileIO.WriteTextAsync(tmpfile, data);
var file = await folder.CreateFileAsync(fileName, CreationCollisionOption.OpenIfExists);
// can this end up with a corrupt or missing file?
await tmpfile.MoveAndReplaceAsync(file);
En résumé, il est un moyen sûr d'enregistrer un texte dans un fichier que le fichier ne sera jamais corrompu?
S'il vous plaît laissez-nous savoir si ma réponse était acceptable, et s'il vous plaît marquer ma réponse que la réponse si ça t'a aidé. –