Beispiel #1
0
        //TODO: Make wrapper of file operations for testability
        public void StartCompleteSequence()
        {
            if (!HashPiece().SequenceEqual(ExpectedPieceHash))
            {
                Complete  = false;
                PieceData = new List <byte>();
                return;
            }

            if (!Directory.Exists(SaveDirectory))
            {
                Directory.CreateDirectory(SaveDirectory);
            }

            File.WriteAllBytes(GetFullPath(), PieceData.ToArray());
            PieceData = null; //Let the bytes be gc'ed
        }
Beispiel #2
0
 private byte[] HashPiece()
 {
     return(new SHA1Managed().ComputeHash(PieceData.ToArray()));
 }