• 大小: 58KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-11
  • 语言: C#
  • 标签: 源码  编程资源  

资源简介

【版本已更新:http://download.csdn.net/source/1687395】 半成品,还有以下几部分未完成: 1、断点续传;(方法都在,代码没调好,就先注释掉了) (就是保存当前下载信息,下次重新读取,最简单的做法就是序列化,要用到的自己改改调调就成) 2、自定义下载窗体; (就像 MessageBox.Show() 一样,已经做了一个简单的Form) 3、部分细节没做好,可能存在BUG; (用着,遇到再说) 涉及的一些应用: 多线程 -- 没用线程池,因为不好控制状态; 事件驱动 -- 自我感觉不是很好,最好谁能改改; 另外,组件的封装也没仔细整理过~ 期待有人能做个完美的组件。 应用范围:文件下载、在线升级 (这个组件就是为了下载升级文件而做的……) 使用示例:(添加DLL引用) List DTaskList = new List(); foreach ( …… ) { DownloadMag.DTask dt = new DTask(); dt.Name = "任务名"; dt.FileName = "文件名"; dt.Size = 文件大小; dt.URL = "下载地址"; dt.CRC32 = CRC32校验值; dt.SaveMode = true; DTaskList.Add(dt); } new DownloadMag.DownloadForm(this).Show(DTaskList.ToArray(), "下载信息文件名"); 没时间修修改改,所以把这个半成品放出来了,也就当时抛砖引玉吧。 谁有兴趣有空闲就提提意见,找找Bug,最好是把它做完美了 :) 意见请提到:http://blog.csdn.net/0xff/archive/2007/11/01/1861780.aspx

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace DownloadMag
{
    /// 
    /// CRC32校验
    /// 

    public sealed class CRC32
    {
        static CRC32()
        {
            GetCRC32Table();
        }

        private static ulong[] Crc32Table;
        
        /// 
        /// 生成CRC32码表
        /// 

        private static void GetCRC32Table() 
        {
            ulong Crc;
            Crc32Table = new ulong[256];
            int ij;
            for(i = 0;i < 256; i++) 
            {
                Crc = (ulong)i;
                for (j = 8; j > 0; j--)
                {
                    if ((Crc & 1) == 1)
                        Crc = (Crc >> 1) ^ 0xEDB88320;
                    else
                        Crc >>= 1;
                }
                Crc32Table[i] = Crc;
            }
        }

        /// 
        /// 字节数组校验
        /// 

        /// ref 字节数组
        /// 
        public static ulong ByteCRC(ref byte[] buffer)
        {
            ulong value = 0xffffffff;
            ulong len = (ulong)buffer.Length;
            for (ulong i = 0; i < len; i++)
            {
                value = (value >> 8) ^ Crc32Table[(value & 0xFF) ^ buffer[i]];
            }
            return value ^ 0xffffffff;
        }

        /// 
        /// 字符串校验
        /// 

        /// 字符串
        /// 
        public static ulong StringCRC(string sInputString)
        {
            byte[] buffer = Encoding.ASCII.GetBytes(sInputString);
            return ByteCRC(ref buffer);
        }

        /// 
        /// 文件校验
        /// 

        /// 文件名
        /// 
        public static ulong FileCRC(string sInputFilename)
        {
            FileStream inFile = new System.IO.FileStream(sInputFilename System.IO.FileMode.Open System.IO.FileAccess.Read);
            byte[] bInput = new byte[inFile.Length];
            inFile.Read(bInput 0 bInput.Length);
            inFile.Close();

            return ByteCRC(ref bInput);
        }
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1332  2007-11-01 17:43  Properties\AssemblyInfo.cs

     文件       2844  2007-08-08 15:45  Properties\Resources.Designer.cs

     文件       5817  2007-07-19 15:40  Properties\Resources.resx

     文件       2383  2007-08-14 13:39  CRC32.cs

     文件      27325  2007-11-01 17:21  Download.cs

     文件      13905  2007-11-01 17:18  DownloadForm.cs

     文件      37995  2007-08-26 14:08  DownloadForm.Designer.cs

     文件      26773  2007-08-26 14:08  DownloadForm.resx

     文件       3554  2007-11-01 17:43  DownloadMag.csproj

     文件      40407  2007-11-01 17:04  DTask.cs

     文件      10005  2007-09-23 15:09  MsgBox.cs

     文件      15339  2007-08-08 15:47  MsgBox.Designer.cs

     文件      47754  2007-07-26 09:56  MsgBox.resx

     文件       5270  2007-11-01 17:20  WMessage.cs

     文件       1406  2005-08-03 09:36  images\down.ico

     文件       1406  2005-08-03 09:36  images\ok.ico

     文件       1406  2005-08-03 09:36  images\point_blue.ico

     文件       1406  2005-08-03 09:36  images\point_cyan.ico

     文件       1406  2005-08-03 09:36  images\point_green.ico

     文件       1406  2005-08-03 09:36  images\point_red.ico

     文件       1406  2005-08-03 09:36  images\point_yellow.ico

     文件       1406  2005-08-03 09:36  images\right.ico

     文件       1406  2005-08-03 09:36  images\stop.ico

     目录          0  2007-11-01 17:44  Properties

     目录          0  2007-11-01 17:34  images

----------- ---------  ---------- -----  ----

               253357                    25


评论

共有 条评论