/// <summary> /// 移动占用空间比较大的文件。 /// </summary> /// <param name="sourceFileUrl">需要被移动的文件的文件地址。</param> /// <param name="targetFileUrl">移动操作的目标地址。</param> /// <param name="transmissionSize">每一次传输的大小,通常这个值设定为1024即可。</param> /// <param name="isCheckFileIntegrity">移动文件之后是否执行完整性检验。</param> /// <exception cref="AbortedCheckOperationException">当文件完整性检查失败或者结果不符合要求时,则会抛出这个异常。</exception> public static void MoveBigFile(string sourceFileUrl, string targetFileUrl, int transmissionSize, bool isCheckFileIntegrity) { FileSignature sourceSignature = new FileSignature(sourceFileUrl); FileSignature targetSignature = new FileSignature(targetFileUrl); ExString srcMd5Value = string.Empty; ExString targetMd5Value = string.Empty; CopyBigFile(sourceFileUrl, targetFileUrl, transmissionSize); if (isCheckFileIntegrity) { srcMd5Value = sourceSignature.GetMD5String(); targetMd5Value = targetSignature.GetMD5String(); if (!srcMd5Value.Equals(targetMd5Value)) { throw new AbortedCheckOperationException(); } } DeleteFile(sourceFileUrl); }