文件同步

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

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值