Exemplo n.º 1
0
        private string Serialization()
        {
            DataContractJsonSerializer formatter = new DataContractJsonSerializer(typeof(SimpleDirectory));
            SimpleDirectory            rlt       = ConstructDirectoryTree(rootDirectoryInfo, rootSimpleDirectory);
            string result = string.Empty;

            using (MemoryStream stream = new MemoryStream())
            {
                formatter.WriteObject(stream, rlt);
                result = System.Text.Encoding.UTF8.GetString(stream.ToArray());
            }
            return(result);
        }
Exemplo n.º 2
0
        public void DeSerialization()
        {
            if (serializedResult == string.Empty)
            {
                throw new NullReferenceException("SerializedResult is empty!");
            }
            DataContractJsonSerializer formatter = new DataContractJsonSerializer(typeof(SimpleDirectory));

            using (MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(serializedResult)))
            {
                SimpleDirectory outSimpleDirectory = formatter.ReadObject(stream) as SimpleDirectory;
                deserializedResult = outSimpleDirectory;
            }
        }
Exemplo n.º 3
0
        public SimpleDirectory ConstructDirectoryTree(DirectoryInfo directoryInfo, SimpleDirectory simpleDirectory)
        {
            simpleDirectory = new SimpleDirectory()
            {
                name = directoryInfo.Name, childDirectories = new List <SimpleDirectory>(), childFiles = new List <SimpleFile>()
            };
            if (directoryInfo.GetDirectories().Length == 0)
            {
                simpleDirectory.childDirectories = null;
                //    return;
            }
            else
            {
                foreach (DirectoryInfo d in directoryInfo.GetDirectories())
                {
                    SimpleDirectory child = new SimpleDirectory()
                    {
                        name = d.Name
                    };

                    simpleDirectory.childDirectories.Add(ConstructDirectoryTree(d, child));
                }
            }

            if (directoryInfo.GetFiles().Length != 0)
            {
                foreach (FileInfo f in directoryInfo.GetFiles())
                {
                    SimpleFile simpleFile = new SimpleFile()
                    {
                        name = f.Name
                    };
                    simpleDirectory.childFiles.Add(simpleFile);
                }
            }
            else
            {
                simpleDirectory.childFiles = null;
            }
            return(simpleDirectory);
        }