Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将文件复制到其他文件夹_C# - Fatal编程技术网

C# 将文件复制到其他文件夹

C# 将文件复制到其他文件夹,c#,C#,我在一个文件夹中有一个文件,每次用户对该文件进行更改时,我都想用不同的名称将其备份到不同的文件夹中 这就是我到目前为止所拥有的,只是不确定如何更改 备份文件类似于backup1.txt、backup2.txt等 try { System.IO.File.Copy(ppFileName,MoveFilesForBackUp); } catch (Exception ex) { Console.WriteLine(ex.Message); } 您需要修改目标文件名MoveFiles

我在一个文件夹中有一个文件,每次用户对该文件进行更改时,我都想用不同的名称将其备份到不同的文件夹中

这就是我到目前为止所拥有的,只是不确定如何更改 备份文件类似于backup1.txt、backup2.txt等

try
{
    System.IO.File.Copy(ppFileName,MoveFilesForBackUp);
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

您需要修改目标文件名
MoveFilesForBackUp
,以使用某种顺序编号

因此,首先您需要编写一个函数,该函数可以为您生成顺序备份号

然后,每次要执行备份时,都需要找出下一个顺序文件名应该是什么。然后尝试将文件复制到新名称,如果复制失败,并出现
IOException
指定该文件已存在,则继续使用下一个顺序名称,以此类推,直到成功为止

天真地说,人们会认为找到下一个顺序名称应该保证
复制
正常工作,但在搜索和实际调用复制之间,用户或其他程序可能已经创建了一个具有该名称的文件(竞争条件),以便更健壮,您需要能够处理错误并尝试其他名称。

尝试以下名称:

string path = @"F:\\EE";

var nextFileName = "backup"
                   + (Convert.ToInt32(Directory.GetFiles(path, "*.txt")
                   .Select(p => Path.GetFileNameWithoutExtension(p)
                   .Replace("backup", "")).Last())
                   + 1)
                   .ToString()
                   + ".txt";
谢谢 我刚刚添加了这行代码,当它复制它时,重命名为它被复制的日期和时间

System.IO.File.Copy(ppFileName, Properties.Settings.Default.MoveFilesForBackUp + DateTime.Now.ToString("yyyy-MM-dd HHmmtt")+".pptx");