字符串分割:
public List<StringBuilder> SplitLength(StringBuilder SourceString, int Length)
{
List<StringBuilder> list = new List<StringBuilder>();
try
{
Length = Length * 1024 * 1024 * 2;
for (int i = 0; i < SourceString.Length; i += Length)
{
if ((SourceString.Length - i) >= Length)
list.Add(new StringBuilder(SourceString.ToString(i, Length)));
else
list.Add(new StringBuilder(SourceString.ToString(i, SourceString.Length - i)));
}
}
catch (Exception e)
{ }
return list;
}
Stream 分割:
private static List<byte[]> SplitLength(MemoryStream stream)
{
int Length = 2 * 1024 * 1024;
List<byte[]> bytelist = new List<byte[]>();
int streamlength = (int)stream.Length;
stream.Seek(0, SeekOrigin.Begin);
for (int i = 0; i < streamlength; i += Length)
{
if ((streamlength - i) >= Length)
{
byte[] bt = new byte[Length];
stream.Read(bt, 0, Length);
bytelist.Add(bt);
}
else
{
int lastlen = streamlength - i;
byte[] bt = new byte[lastlen];
stream.Read(bt, 0, lastlen);
bytelist.Add(bt);
}
}
return bytelist;
}