Exemple #1
0
            public uint ComputeCheckSum(byte[] bytes, CSMethod eMethod)
            {
                uint uiSummerValue = 0;
                bool StopReading   = false;

                dlgSummer dlgSummer;

                switch (eMethod)
                {
                case CSMethod.CRC32:
                    dlgSummer     = new dlgSummer(SummerCRC32Logic);
                    uiSummerValue = 0xffffffff;
                    break;

                case CSMethod.Checksum:
                    dlgSummer = new dlgSummer(SummerCSLogic);
                    break;

                default:
                    dlgSummer = new dlgSummer(SummerCSLogic);
                    break;
                }

                uiSummerValue = dlgSummer(bytes.Length, uiSummerValue, bytes);
                if (eMethod == CSMethod.CRC32)
                {
                    uiSummerValue = ~uiSummerValue;
                }
                return(uiSummerValue);
            }
Exemple #2
0
            public uint ComputeCheckSum(FileInfo file, CSMethod eCsMethod)
            {
                uint uiSummerValue = 0;
                bool StopReading   = false;

                dlgSummer dlgSummer;

                switch (eCsMethod)
                {
                case CSMethod.CRC32:
                    dlgSummer     = new dlgSummer(SummerCRC32Logic);
                    uiSummerValue = 0xffffffff;
                    break;

                case CSMethod.Checksum:
                    dlgSummer = new dlgSummer(SummerCSLogic);
                    break;

                default:
                    dlgSummer = new dlgSummer(SummerCSLogic);
                    break;
                }

                using (FileStream fs = new FileStream(file.FullName, FileMode.Open))
                    using (BinaryReader br = new BinaryReader(fs))
                    {
                        long TotalLength = Math.Min((long)BufferSize, fs.Length);
                        while (!StopReading)
                        {
                            byte[] by1FileChunk = new byte[TotalLength];
                            br.Read(by1FileChunk, 0, (int)TotalLength);

                            uiSummerValue = dlgSummer(TotalLength, uiSummerValue, by1FileChunk);

                            if (br.BaseStream.Position >= br.BaseStream.Length)
                            {
                                StopReading = true;
                            }
                        }
                    }

                if (eCsMethod == CSMethod.CRC32)
                {
                    uiSummerValue = ~uiSummerValue;
                }
                return(uiSummerValue);
            }