编写xml文件c#asp.net,并控制文件大小
我创建了一个xml文件,并在其中写入了一些信息。 执行此操作时,我将遵循以下步骤:编写xml文件c#asp.net,并控制文件大小,c#,asp.net,xml,C#,Asp.net,Xml,我创建了一个xml文件,并在其中写入了一些信息。 执行此操作时,我将遵循以下步骤: 我从数据库中获取数据,并将其映射到我的对象列表中 在foreach迭代语句中编写xml文件 但我的数据大小是可变的 我的问题是我的xml文件大小不能超过200 mb。如果我的数据超过200 mb。我必须分为两部分,如果超过400 mb,则分为三部分 我可以在填充xml文件之前控制数据大小吗 例如,如果我的列表对象数据大小超过200 mb,我将把列表对象分成两部分。我不理解您编写的xml方法,但您可以尝试类似的方法
例如,如果我的列表对象数据大小超过200 mb,我将把列表对象分成两部分。我不理解您编写的xml方法,但您可以尝试类似的方法。 主要思想是计算列表中每个记录的长度
[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();
}
[可序列化]
公共类MyData
{
公共int id{get;set;}
公共字符串数据{get;set;}
}
静态void Main(字符串[]参数)
{
string fileName=string.Format(“xmlFile_{0}.xml”,DateTime.Now.ToString(“dd.mm.ss”);
int dataLength=0;
整数极限=100500;
列表=新列表();
对于(int i=0;i