最近有网友留言,问了一个问题,如何把一个文件夹里的所有内容复制至另一个文件夹?想了1秒回复:直接Ctrl+C和Ctrl+V不就行了?然后就没有下文了。现在想来,他的意思是问怎么用代码实现的?抱歉了,现在才想到,代码实现也不难,都在下面了
1、实现的代码
private void CopyFolder(string sourceFolder, string targetFolder) { //1,判断文件夹最末的字符是不是\ if (targetFolder[targetFolder.Length - 1] != System.IO.Path.DirectorySeparatorChar) { targetFolder += System.IO.Path.DirectorySeparatorChar; } //2,判断目标文件夹是否存在?不存在就创建 if (!System.IO.Directory.Exists(targetFolder)) { System.IO.Directory.CreateDirectory(targetFolder); } //3,同时获取源文件的文件和子文件夹 string[] fileList = System.IO.Directory.GetFileSystemEntries(sourceFolder); //4,遍历所有的文件和目录 foreach (string file in fileList) { //4.1,先判断是否是文件夹。若是就递归Copy下面的文件 if (System.IO.Directory.Exists(file)) { this.CopyFolder(file, targetFolder + System.IO.Path.GetFileName(file)); } else { //4.1,若不是则直接Copy文件 //a,直接复制复制 //System.IO.File.Copy(file, targetFolder + System.IO.Path.GetFileName(file), true); //b,创建一个同名的txt空文件 string targetFile = targetFolder + Path.GetFileNameWithoutExtension(file) + ".txt"; FileHelper.WriteFileToText(targetFile, "", Encoding.UTF8, false); } } }
2、代码调用示例
sourceFolder = @"e:\entertain2"; targetFolder = @"e:\entertain2\"; this.CopyFolder(sourceFolder, targetFolder);
3、2个知识点
1、递归复制
2、Directory.GetFileSystemEntries,这个方法可以同时获得文件和子文件夹
相关阅读
文章评论