• C#统计目录中文件MD5值


    1. [代码]统计目录中文件MD5值     

    using System.IO;
    using System.Security.Cryptography;
    using System.Collections;
    using System.Windows.Forms;
     IDataObject iData = Clipboard.GetDataObject();
       if (iData.GetDataPresent(DataFormats.Text))
       {
    string filepath=(string)iData.GetData(DataFormats.Text);
    StringBuilder sbMD5= new StringBuilder(1024);
    string filepath=@"C: mp";
    DirectoryInfo dir = new DirectoryInfo((filepath.LastIndexOf(Path.DirectorySeparatorChar) == filepath.Length - 1) ? filepath : filepath + Path.DirectorySeparatorChar);
    FileSystemInfo[] fileArr = dir.GetFileSystemInfos();
    Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dir.GetFileSystemInfos());
    while (Folders.Count > 0)
    {
        FileSystemInfo atom = Folders.Dequeue();
        FileInfo f = atom as FileInfo;
        if (f == null)
        {
            DirectoryInfo d = atom as DirectoryInfo;
            foreach (FileSystemInfo fi in d.GetFileSystemInfos())
                Folders.Enqueue(fi);
        }
        else
        {
            FileStream fs = new FileStream(f.FullName,FileMode.Open,FileAccess.Read);
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            byte [] md5byte = md5.ComputeHash(fs);
            int i,j;
            StringBuilder sb = new StringBuilder(16);
            foreach (byte b in md5byte)
            {
                i = Convert.ToInt32(b);
               j = i >> 4;
               sb.Append(Convert.ToString(j,16));
               j = ((i << 4) & 0x00ff) >> 4;
               sb.Append(Convert.ToString(j,16));
            }
            sbMD5.Append(f.FullName);
            sbMD5.Append(" ");
            sbMD5.Append(sb.ToString());
            sbMD5.Append(" ");
        }
    }
    Clipboard.SetText(sbMD5.ToString());
       }
       else
        MessageBox.Show("目前剪贴板中数据不可转换为文本","错误");
    2. [代码][C#]代码     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.IO;
    using System.Security.Cryptography;
    using System.Collections;
    using System.Windows.Forms;
     http://www.huiyi8.com/gongzuozongjie/
    static void listFiles(string rootDirectory,string searchPattern)
    {工作总结
    var files=from fileName in Directory.GetFiles(
    rootDirectory,searchPattern)
    select new
    {
    Name=fileName,
    LastWriteTime=File.GetLastWriteTime(fileName)
    };
    StringBuilder sbMD5= new StringBuilder(1024);
    foreach(var file in files)
    {
            FileStream fs = new FileStream(file.Name,FileMode.Open,FileAccess.Read);
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            byte [] md5byte = md5.ComputeHash(fs);
            StringBuilder sb = new StringBuilder(16);
            foreach (byte b in md5byte)
            {
                int i = Convert.ToInt32(b);
               int j = i >> 4;
               sb.Append(Convert.ToString(j,16));
               j = ((i << 4) & 0x00ff) >> 4;
               sb.Append(Convert.ToString(j,16));
            }
            sbMD5.Append(f.Name);
            sbMD5.Append(" ");
            sbMD5.Append(f.LastWriteTime);
            sbMD5.Append(" ");
            sbMD5.Append(sb.ToString());
            sbMD5.Append(" ");
    }
    Clipboard.SetText(sbMD5.ToString());
    }
     
     
     IDataObject iData = Clipboard.GetDataObject();
       if (iData.GetDataPresent(DataFormats.Text))
       {
    string filepath=(string)iData.GetData(DataFormats.Text);
    listFiles(filepath,"*");
    }

  • 相关阅读:
    C#数据结构之串
    DevExpress ChartControl 设置它的标题
    [转]DevExpress GridControl 关于使用CardView的一点小结
    将ImageList中的图片转化成byte数组
    可变参数
    jquery动态移除/增加onclick属性详解
    div中英文无法自动换行的解决办法
    jQuery三种事件绑定方式.bind(),.live(),.delegate()
    纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等),NB么?
    关于JS、JQuery、CSS的小知识点
  • 原文地址:https://www.cnblogs.com/xkzy/p/3969914.html
Copyright © 2020-2023  润新知