using System; using System.Collections.Generic; using System.IO; using System.Security.Cryptography; namespace UpdateServiceLibrary.Helper { public class FileController { /// /// 获取文件哈希值 /// /// /// public static string GetHashCode(FileInfo fileInfo) { var hash = SHA1.Create(); byte[] hashcode; using (var fs = new FileStream(fileInfo.FullName, FileMode.Open)) { hashcode = hash.ComputeHash(fs); } return BitConverter.ToString(hashcode); } /// /// 移动文件夹下所有文件与路径 /// /// /// public static void MoveFolder(string sourcePath, string destPath) { if (Directory.Exists(sourcePath)) { if (!Directory.Exists(destPath)) { //目标目录不存在则创建 try { Directory.CreateDirectory(destPath); } catch (Exception ex) { throw new Exception("创建目标目录失败:" + ex.Message); } } //获得源文件下所有文件 List files = new List(Directory.GetFiles(sourcePath)); files.ForEach(c => { string destFile = Path.Combine(new string[] { destPath, Path.GetFileName(c) }); //覆盖模式 if (File.Exists(destFile)) { File.Delete(destFile); } File.Move(c, destFile); }); //获得源文件下所有目录文件 List folders = new List(Directory.GetDirectories(sourcePath)); folders.ForEach(c => { string destDir = Path.Combine(new string[] { destPath, Path.GetFileName(c) }); //采用递归的方法实现 MoveFolder(c, destDir); }); } else { throw new DirectoryNotFoundException("源目录不存在!"); } } } }