private void ReceiveFileInformation()
        {
            ReceivingSocket.Receive(InputBytes);

            string RecString = Encoding.Default.GetString(InputBytes);

            string[] PartsRecString = RecString.Split('|');

            FileInfo          = new SerializeFileInfo();
            FileInfo.FileName = PartsRecString[0];
            FileInfo.FileSize = PartsRecString[1];
        }
Beispiel #2
0
        private void RecFInfo()
        {
            this.StreamBytes = this.Udp.Receive(ref this.EndPoint);

            string RecString = Encoding.Default.GetString(this.StreamBytes);

            string[] PartsRecString = RecString.Split('|');

            SerializeInfo          = new SerializeFileInfo();
            SerializeInfo.FileName = PartsRecString[0];
            SerializeInfo.FileSize = PartsRecString[1];
        }
        private static void BuildDir(string rootPath, string dirPath, ArrayList list)
        {
            SerializeFileInfo sdi = new SerializeFileInfo(GetRelativeDir(rootPath, dirPath));

            list.Add(sdi);
            foreach (string f in Directory.GetFiles(dirPath))
            {
                byte[]            destBuffer = File.ReadAllBytes(f);
                SerializeFileInfo sfi        = new SerializeFileInfo(GetRelativeDir(rootPath, f), destBuffer);
                list.Add(sfi);
            }
            foreach (string d in Directory.GetDirectories(dirPath))
            {
                BuildDir(rootPath, d, list);
            }
        }
Beispiel #4
0
 /// <summary>
 /// 对目标文件夹进行压缩,将压缩结果保存为指定文件
 /// </summary>
 /// <param name="目标路径">要压缩的文件或文件夹路径,可指定多个</param>
 /// <param name="保存路径">压缩文件保存路径</param>
 public static void 压缩(string 保存路径, params string[] 目标路径)
 {
     ArrayList list = new ArrayList();
     foreach (TempFileName f in 转化文件列表(目标路径))
     {
         byte[] destBuffer = File.ReadAllBytes(f.FullName);
         SerializeFileInfo sfi = new SerializeFileInfo(f.Name, destBuffer);
         list.Add(sfi);
     }
     IFormatter formatter = new BinaryFormatter();
     using (Stream s = new MemoryStream())
     {
         formatter.Serialize(s, list);
         s.Position = 0;
         CreateCompressFile(s, 保存路径);
     }
 }
Beispiel #5
0

        
        /// <summary>
        /// 多文件压缩
        /// </summary>
        /// <param name="filePaths">多个文件路径</param>
        /// <returns>压缩后的字节数组</returns>
        public static byte[] CompressFiles(string[] filePaths)
        {
            ArrayList list = new ArrayList();

            foreach (var filePath in filePaths)
            {
                byte[]            destBuffer = File.ReadAllBytes(filePath);
                SerializeFileInfo sfi        = new SerializeFileInfo(Path.GetFileName(filePath), destBuffer);
                list.Add(sfi);
            }
            IFormatter formatter = new BinaryFormatter();

            using (Stream s = new MemoryStream())
            {
                formatter.Serialize(s, list);
                s.Position = 0;
                return(CreateCompressFile(s));
            }
        }
Beispiel #7
0
        /// <summary>
        /// 对目标文件夹进行压缩,将压缩结果保存为指定文件
        /// </summary>
        /// <param name="目标路径">要压缩的文件或文件夹路径,可指定多个</param>
        /// <param name="保存路径">压缩文件保存路径</param>
        public static void 压缩(string 保存路径, params string[] 目标路径)
        {
            ArrayList list = new ArrayList();

            foreach (TempFileName f in 转化文件列表(目标路径))
            {
                byte[]            destBuffer = File.ReadAllBytes(f.FullName);
                SerializeFileInfo sfi        = new SerializeFileInfo(f.Name, destBuffer);
                list.Add(sfi);
            }
            IFormatter formatter = new BinaryFormatter();

            using (Stream s = new MemoryStream())
            {
                formatter.Serialize(s, list);
                s.Position = 0;
                CreateCompressFile(s, 保存路径);
            }
        }
Beispiel #8
0

        
Beispiel #9
0
        /// <summary>
        /// 序列化檔案
        /// </summary>
        /// <param name="FilePath"></param>
        /// <returns></returns>
        public SerializeFileInfo File(string FilePath)
        {
            SerializeFileInfo serializeFileInfo = new SerializeFileInfo();

            SerializeInfo serializeInfo = new SerializeInfo();

            FileStream fileStream = null;

            FileInfo fileInfo = null;

            try
            {
                fileStream = new FileStream(FilePath, FileMode.Open);

                byte[] bytes = new byte[fileStream.Length];

                for (int i = 0; i < bytes.Length; i++)
                {
                    bytes[i] = (byte)fileStream.ReadByte();
                }

                serializeInfo = Start(bytes);

                if (serializeInfo.Message.Length > 0)
                {
                    serializeFileInfo.Message = serializeInfo.Message; return(serializeFileInfo);
                }
                serializeFileInfo.Body = serializeInfo.Body;

                fileInfo = new FileInfo(FilePath);

                serializeFileInfo.FileInfos = fileInfo;
            }
            catch (System.UnauthorizedAccessException ex)
            {
                serializeFileInfo.Message = "[Serialize.File][UnauthorizedAccessException][" + ex.ToString() + "]";
            }
            catch (System.Security.SecurityException ex)
            {
                serializeFileInfo.Message = "[Serialize.File][SecurityException][" + ex.ToString() + "]";
            }
            catch (System.IO.PathTooLongException ex)
            {
                serializeFileInfo.Message = "[Serialize.File][PathTooLongException][" + ex.ToString() + "]";
            }
            catch (System.IO.FileNotFoundException ex)
            {
                serializeFileInfo.Message = "[Serialize.File][FileNotFoundException][" + ex.ToString() + "]";
            }
            catch (System.Exception ex)
            {
                serializeFileInfo.Message = "[Serialize.File][" + ex.ToString() + "]";
            }
            finally
            {
                if (fileStream != null)
                {
                    fileStream.Close(); fileStream = null;
                }
            }
            return(serializeFileInfo);
        }