[C#] C#统计目录中文件MD5值,并存入剪贴板中 →→→→→进入此内容的聊天室

来自 , 2019-06-06, 写在 C#, 查看 116 次.
URL http://www.code666.cn/view/bedc7106
  1. using System.IO;
  2. using System.Security.Cryptography;
  3. using System.Collections;
  4. using System.Windows.Forms;
  5.  IDataObject iData = Clipboard.GetDataObject();
  6.    if (iData.GetDataPresent(DataFormats.Text))
  7.    {
  8. string filepath=(string)iData.GetData(DataFormats.Text);
  9. StringBuilder sbMD5= new StringBuilder(1024);
  10. string filepath=@"C:\tmp";
  11. DirectoryInfo dir = new DirectoryInfo((filepath.LastIndexOf(Path.DirectorySeparatorChar) == filepath.Length - 1) ? filepath : filepath + Path.DirectorySeparatorChar);
  12. FileSystemInfo[] fileArr = dir.GetFileSystemInfos();
  13. Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dir.GetFileSystemInfos());
  14. while (Folders.Count > 0)
  15. {
  16.     FileSystemInfo atom = Folders.Dequeue();
  17.     FileInfo f = atom as FileInfo;
  18.     if (f == null)
  19.     {
  20.         DirectoryInfo d = atom as DirectoryInfo;
  21.         foreach (FileSystemInfo fi in d.GetFileSystemInfos())
  22.             Folders.Enqueue(fi);
  23.     }
  24.     else
  25.     {
  26.         FileStream fs = new FileStream(f.FullName,FileMode.Open,FileAccess.Read);
  27.         MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
  28.         byte [] md5byte = md5.ComputeHash(fs);
  29.         int i,j;
  30.         StringBuilder sb = new StringBuilder(16);
  31.         foreach (byte b in md5byte)
  32.         {
  33.             i = Convert.ToInt32(b);
  34.            j = i >> 4;
  35.            sb.Append(Convert.ToString(j,16));
  36.            j = ((i << 4) & 0x00ff) >> 4;
  37.            sb.Append(Convert.ToString(j,16));
  38.         }
  39.         sbMD5.Append(f.FullName);
  40.         sbMD5.Append("\t");
  41.         sbMD5.Append(sb.ToString());
  42.         sbMD5.Append("\r\n");
  43.     }
  44. }
  45. Clipboard.SetText(sbMD5.ToString());
  46.    }
  47.    else
  48.     MessageBox.Show("目前剪贴板中数据不可转换为文本","错误");
  49. //csharp/1115

回复 "C#统计目录中文件MD5值,并存入剪贴板中"

这儿你可以回复上面这条便签

captcha