当文件打开到程序中时,备份文件的最有效方法是什么,这样当用户更改并保存文件时,总会有一种方法可以返回?
示例:
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,依此类推。)
示例非常受欢迎!
答案 0 :(得分:0)
我通常会创建文件本身的副本,将其放在“备份”文件夹中,并对其应用一些命名方案以指示其年龄。
例如:folder/originalFile.xyz
==> folder/backup/originalFile_2013-04-14-12-48.bak
更新/事后补充:我认为这样做的效率取决于执行复制操作的操作系统,但通常情况下应该不会太糟糕。除非你有充分的理由这样做,否则我会避免尝试添加额外的逻辑来更有效地做到这一点。
更新以回应评论:
我不会在此提供详细的实施,但我会尽力指出正确的方向:查看 System.IO.File ,特别是方法Copy
和Exists
。 (This list of other common IO-taks也可能有用)
通过这些,您应该能够检查文件是否存在(例如,如果您的备份文件夹中已经有“backup_1.xyz
”),并根据该文件为您的下一个备份生成一个新名称文件。
创建一个循环,用越来越多的数字替换1
,直到找到“free”文件名,然后将原始文件复制到具有该名称的新文件。