Ejemplo n.º 1
0
        private void CreateNewStorageList()
        {
            DirectoryInfo di = new DirectoryInfo(config.StorageFolder);

            if (di.Exists)
            {
                FileManipulator fm = new FileManipulator();
                foreach (var f in di.GetFiles())
                {
                    try
                    {
                        // get header from file
                        STORED_FILE_HEADER sfh = fm.GetHeaderFromFile(f.FullName);

                        // fill StorageItem from header
                        string      originname = f.Name.Substring(0, f.Name.IndexOf(".part") - 5); // if string not found file name ignored
                        StorageItem si         = new StorageItem(sfh.FileName, originname, sfh.Description, sfh.OriginSize, (uint)sfh.ChunksQty, (uint)sfh.ChunkNum, sfh.MD5Chunk, sfh.MD5Origin);

                        // add Storage item into List
                        Vault.StorageList.Add(si);
                    }
                    catch (Exception e)
                    {
                        Logger.Log.Error("Error in StoredList creation process.");
                        Logger.Log.Error(e.Message);
                        //throw;
                    }
                }

                // Serialize StorageList
                XmlSerializer formatter = new XmlSerializer(typeof(List <StorageItem>));
                using (FileStream fs = new FileStream(config.StorageFolder + "List.xml", FileMode.OpenOrCreate))
                {
                    formatter.Serialize(fs, Vault.StorageList);
                }
            }
            else
            {
                di.Create(); // just create empty StoredFolder
            }
        }
Ejemplo n.º 2
0
        public void GetHeader_TestMethod()
        {
            Helper          h  = new DataDepositer.Helper();
            FileManipulator fm = new DataDepositer.FileManipulator();

            //            String filePathFull = "d:\\test\\datadepositor\\join\\test.txt";
            String filePathFull = "d:\\test\\datadepositor\\testHeader.txt";
            String MD5Origin    = h.GetStringMD5("55555555555555555555555555555555");
            String MD5Chunk     = h.GetStringMD5("66666666666666666666666666666666");

            STORED_FILE_HEADER sfh = new STORED_FILE_HEADER();

            sfh.cb          = (uint)Marshal.SizeOf(sfh); // size of struct
            sfh.ChunkNum    = 3;
            sfh.ChunkSize   = 0x1234;
            sfh.ChunksQty   = 5;
            sfh.Description = @"Проверка описания на русском языке";
            sfh.FileName    = Path.GetFileName(filePathFull);
            sfh.MD5Chunk    = MD5Chunk;
            sfh.MD5Origin   = MD5Origin;
            sfh.OriginSize  = 0x5432;

            FileInfo fi = new FileInfo(filePathFull);

            string v = filePathFull + ".hdr";

            //string headerFile =

            File.Delete(v); // delete before copy

            fi.CopyTo(v);

            fm.AddHeaderToFile(sfh, v);

            STORED_FILE_HEADER newSfh = fm.GetHeaderFromFile(v);

            Console.WriteLine("{0}\n {1}\n{2}\n{3}\n{4}\n", newSfh.FileName, newSfh.Description, newSfh.MD5Origin, newSfh.MD5Chunk, newSfh.OriginSize);
        }