You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
using System;using System.Collections.Generic;using System.IO;using System.Security.Cryptography;
namespace UpdateServiceLibrary.Helper{ public class FileController { /// <summary>
/// 获取文件哈希值
/// </summary>
/// <param name="fileInfo"></param>
/// <returns></returns>
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); }
/// <summary>
/// 移动文件夹下所有文件与路径
/// </summary>
/// <param name="sourcePath"></param>
/// <param name="destPath"></param>
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<string> files = new List<string>(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<string> folders = new List<string>(Directory.GetDirectories(sourcePath));
folders.ForEach(c => { string destDir = Path.Combine(new string[] { destPath, Path.GetFileName(c) }); //采用递归的方法实现
MoveFolder(c, destDir); }); } else { throw new DirectoryNotFoundException("源目录不存在!"); } } }}
|