2017-06-26 7 views
3

私のチームは、Windows 10のIOTにファイルを保存するには防弾方法が必要です(100kb未満)。安全にWindows 10にファイルを保存するIOT

(これ以上File.Replace)我々は方法がわからないんファイルが破損しているが、保存が原因IOが大幅に変更されたファイル以降など

オフ電源の障害が発生した場合には、最新バージョンを失いOKだことはできませんそれを達成する。

我々はそれを見ることができます:

var file = await folder.CreateFileAsync(fileName, CreationCollisionOption.OpenIfExists); 
await Windows.Storage.FileIO.WriteTextAsync(file, data); 

が確実に信頼できないです(。デバッグを停止、またはデバイスをリセットする場合には、繰り返し破った)、私たちは(ゼロの完全な)破損したファイルで終わるとされ、それの隣に.tmpファイルがあります。私たちはこの.tmpファイルを回復できます私は、文書化されていない動作に我々の解決策を基盤とすべきではないと確信しています。我々は試してみたい

一つの方法は次のとおりです。

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); 

要約すると、ファイル意志は決して壊れたファイルにいくつかのテキストを保存する安全な方法はありますか?

私は、チェックサムを計算するような何かをして、ファイルと一緒にそれを保存します:そこにこのためのベストプラクティスですが、何か自分自身を思い付くために必要な場合ならば

+0

ことを調査していないことを前提としていますそれはあなたを助けた。 –

答えて

0

わかりません。

次回の保存時には、上書きせずに前回の保存(「正常終了」)の隣に保存し、新しい保存が正常に完了したことを確認した後にのみ前の設定を削除してくださいチェックサム)

はまた、私は名前の変更操作が壊れたファイルではないはずですが、私は私の答えは許容できるものであった場合はお知らせください、とあれば答えとして私の答えをマークしてください

関連する問題