0

在程序中打开文件时备份文件的最有效方法是什么,以便当用户更改并保存它时,总有办法返回?

例子:

    private void open_click(object sender, EventArgs e)
    {
        ofd.DefaultExt = "";
        if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            fileIn = ofd.FileName;
            fileOut = Path.GetTempFileName();
            string encoded = File.ReadAllText(fileIn);
    etc. etc. etc
}

加载到程序中的文件需要备份为 backup_01 并放在与原始文件相同的文件夹中。当backup_01存在时,备份为backup_02,以此类推)。

例子非常受欢迎!

4

1 回答 1

0

我通常会创建文件本身的副本,将其放在“备份”文件夹中,并对其应用一些命名方案以指示其年龄。

例如:folder/originalFile.xyz==>folder/backup/originalFile_2013-04-14-12-48.bak

更新/事后思考:我认为这将取决于执行复制操作的操作系统,但一般来说应该不会太糟糕。除非您有充分的理由这样做,否则我会避免尝试添加额外的逻辑以更有效地执行此操作。

更新以回应评论

我不会在这里提供详细的实现,但我会尝试为您指出正确的方向:查看System.IO.File,特别是方法CopyExists. (这个其他常见 IO 任务的列表也可能有用)

有了这些,您应该能够检查文件是否存在(例如,如果您backup_1.xyz的备份文件夹中已经有“”),并在此基础上为您的下一个备份文件生成一个新名称。

创建一个循环,1用递增的数字替换,直到找到“空闲”文件名,然后将原始文件复制到具有该名称的新文件中。

祝你好运!:)

于 2013-04-24T10:47:37.383 回答