我有一个C#应用程序正在使用冗余保存文件系统来解决我们在独立信息亭上运行的软件丢失掉电数据的问题。基本上,我正在使用Windows API尽快将数据传输到磁盘,而且我还要写入多个文件(使用哈希进行数据验证),以便有一些方法可以加载以前的文件主文件已损坏/丢失。
这很好用,但我遇到的问题是一个简单的物流,我想不出一个像样的方法。现在,第一次保存文件时,它的名称类似于“data01_01.sav”。下一次将一段数据保存到该文件时,我们将其称为“data01_02.sav”。我将继续这样做,比如10级冗余。
问题是,一旦我拥有了我想要冗余的最大文件数,我该如何继续?如果我将它视为固定大小的数组,我只会删除第一个位置,将剩下的九个向下移动一个,然后将新值写入最高索引。如果我在这里这样做,我的磁盘I / O将通过屋顶(我们经常写小块数据)。我觉得有一个简单的解决方案,我只是缺少。