文件同步

    开学的在彭老师的指导下,写了一个文件服务器/客户端的文件同步程序。这里只介绍得如何同步两个文件夹的内容。

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

    这段代码我是用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);
			}
		}
	}


你可能感兴趣的:(String,C#,服务器,文件同步)