我有一个autoupdater C#程序.它将下载一个rar文件,该文件将更新的新文件或新文件保存到某些软件中.rar文件的结构就像软件的基本目录一样,但只包含已更改的文件/文件夹.是否有一种简单的方法可以将这些文件/文件夹"合并"到目标目录中,这样如果文件/文件夹已经存在,它将被替换,如果没有,它将被添加或者我必须手动遍历每个文件/文件夹,自己这样做?只是希望.NET有一个很好的小合并功能:)
GSe*_*erg 21
以下示例演示如何复制目录及其内容.
Run Code Online (Sandbox Code Playgroud)public static void CopyAll(DirectoryInfo source, DirectoryInfo target) { if (source.FullName.ToLower() == target.FullName.ToLower()) { return; } // Check if the target directory exists, if not, create it. if (Directory.Exists(target.FullName) == false) { Directory.CreateDirectory(target.FullName); } // Copy each file into it's new directory. foreach (FileInfo fi in source.GetFiles()) { Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name); fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true); } // Copy each subdirectory using recursion. foreach (DirectoryInfo diSourceSubDir in source.GetDirectories()) { DirectoryInfo nextTargetSubDir = target.CreateSubdirectory(diSourceSubDir.Name); CopyAll(diSourceSubDir, nextTargetSubDir); } }
最简单的方法是使用FileSystem.MoveDirectory方法。确保添加对以下内容的引用Microsoft.VisualBasic.dll:
using Microsoft.VisualBasic.FileIO;
...
// Merge D:\SourceDir with D:\DestDir:
FileSystem.MoveDirectory("D:\\SourceDir", "D:\\DestDir", true /* Overwrite */);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7827 次 |
| 最近记录: |