Transactional file writing in C# and Windows?

前端 未结 2 1203
天命终不由人
天命终不由人 2020-12-20 12:31

I have a data file and from time to time I need to write a change to the file. The change consists of changing information in more than one place. For example, changing some

2条回答
  •  隐瞒了意图╮
    2020-12-20 13:25

    DB basically uses a Journal concept (at least those one I'm aware of). An idea is, that a write operation is written in journal until Writer doesn't commit a transaction. (Sure it's just basic description, it's so easy)

    In your case, it could be a copy of your file, where you're going to write a data, and if everything finished with success, substitute original file with it's copy.

    Substitution is: rename original file like a old, rename backup file like a original.

    If substitution fails: this is a critical error, that application should handle via fault tolerance strategies. Could be that it informed a user about a failed save operation, and tries to recover. By the way in any moment you have both copies of your file. That one when write operation just started, and that one when write operation finished.

    This techniques we used on past projects on VS IDE like systems for industrial control with pretty good success.

提交回复
热议问题