文件同步

来源:互联网 发布:梵高 知乎 编辑:程序博客网 时间:2024/05/16 01:32
    开学的在彭老师的指导下,写了一个文件服务器/客户端的文件同步程序。这里只介绍得如何同步两个文件夹的内容。

    核心思路就是比较两个文件夹里的对应文件或文件夹。如果文件不存在,则直接复制过来。如果文件的最后一次写时间小于源文件的最后一次写时间,则也复制过来。

    这段代码我是用C#实现。


//递归遍历文件树static void TraverseFileTree(DirectoryInfo sourceDirectory, DirectoryInfo destinationDirectory){FileInfo[] files = sourceDirectory.GetFiles();foreach(FileInfo sourceFile in files){String fileName = destinationDirectory.FullName + @"\" + sourceFile.Name;FileInfo destinationFile = new FileInfo(fileName);if (!destinationFile.Exists || destinationFile.LastWriteTime < sourceFile.LastWriteTime){if (destinationFile.Exists)destinationFile.Delete();sourceFile.CopyTo(fileName);}}DirectoryInfo[] sourceSubdirectories = sourceDirectory.GetDirectories();foreach(DirectoryInfo sourceSubdirectory in sourceSubdirectories){String directoryName = destinationDirectory.FullName + @"\" + sourceSubdirectory.Name;DirectoryInfo destinationSubdirectory = new DirectoryInfo(directoryName);if (!destinationSubdirectory.Exists) destinationSubdirectory.Create();TraverseFileTree(sourceSubdirectory, destinationSubdirectory);}}}