napsat xml soubor c # ASP.NET a velikost souboru kontrolního

hlasů
0

I vytvořit XML soubor a zapisovat některé informace v něm. Když jsem tuto operaci, i takto:

  1. I získat data z db a zmapovat to můj seznam objektů;
  2. V foreach prohlášení iterace zapsat soubor XML.

Ale moje velikost dat Měnitelný.

Můj problém je moje velikost xml souboru nesmí přesáhnout 200 MB. Kdyby moje data přesahují 200 MB. Musím se rozdělit do dvou částí, pokud přesáhne 400 mb rozdělit do tří částí.

Můžu kontrolovat objem dat před naplněním souboru XML?

Například když můj seznam velikost objektu dat přesahuje 200 MB, budu dělit svůj seznam objekt do dvou částí.

Položena 30/03/2014 v 10:08
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Nechápu píšete metodu XML, ale můžete zkusit něco takového. Hlavní myšlenkou je délka počet každého záznamu v seznamu

    [Serializable]
    public class MyData
    {
        public int id { get; set; }
        public string data { get; set; }
    }

    static void Main(string[] args)
    {
        string fileName = string.Format("xmlFile_{0}.xml", DateTime.Now.ToString("dd.mm.ss"));
        int dataLength = 0;
        int limit = 100500;

        List<MyData> list = new List<MyData>();
        for (int i = 0; i <= 1000; i++)
        { 
            Random r = new Random();
            string preparedData = Convert.ToBase64String( 
                System.Text.Encoding.UTF8.GetBytes(r.Next(int.MaxValue).ToString())
                );

            MyData mydata = new MyData { id = i, data = preparedData };

            StringWriter stringWriter = new StringWriter();
            XmlDocument xmlDoc = new XmlDocument();
            XmlTextWriter xmlWriter = new XmlTextWriter(stringWriter);
            XmlSerializer serializer = new XmlSerializer(typeof(MyData));
            serializer.Serialize(xmlWriter, mydata);
            string xmlResult = stringWriter.ToString();
            dataLength += xmlResult.Length;
            if (dataLength <= limit)
                // insert you write method here
                File.AppendAllText(fileName, xmlResult);
            else
            { 
                // create new file or something else you want
            }

            list.Add(mydata);
        }

        Console.WriteLine("Finished");
        Console.ReadLine();
    }
Odpovězeno 30/03/2014 v 12:58
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more