如何备份完整的文件?

时间:2013-04-24 10:36:00

标签: c# backup

当文件打开到程序中时,备份文件的最有效方法是什么,这样当用户更改并保存文件时,总会有一种方法可以返回?

示例:

    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,依此类推。)

示例非常受欢迎!

1 个答案:

答案 0 :(得分:0)

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

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

更新/事后补充:我认为这样做的效率取决于执行复制操作的操作系统,但通常情况下应该不会太糟糕。除非你有充分的理由这样做,否则我会避免尝试添加额外的逻辑来更有效地做到这一点。

更新以回应评论

我不会在此提供详细的实施,但我会尽力指出正确的方向:查看 System.IO.File ,特别是方法CopyExists。 (This list of other common IO-taks也可能有用)

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

创建一个循环,用越来越多的数字替换1,直到找到“free”文件名,然后将原始文件复制到具有该名称的新文件。

祝你好运! :)