FileStream fsIn = new FileStream(fileName, FileMode.Open, FileAccess.Read); string basePath = System.IO.Path.GetDirectoryName(fileName); int fileSize = (int) fsIn.Length;
int segments = (int) (fileSize / m_segmentSize);
int remainder = (int) (fileSize % m_segmentSize); if (remainder > 0) segments++; byte[] buffer = new byte[m_blockSize]; int bytesRead = 0;
try
{
for (int i = 0; i < segments; i++)
{
FileStream fsOut = new FileStream(fileName + "." + i, FileMode.Create,FileAccess.Write);
int blocks = (int) (m_segmentSize / m_blockSize); for ( int j = 0; j < blocks ; j++)
{
bytesRead = fsIn.Read(buffer, 0, m_blockSize);
fsOut.Write(buffer, 0, bytesRead);
}
fsOut.Close();
OnProgessNotify ( Utilities.GetPercentComplete( i+1 , segments ) );
} return (int) segments;
}
finally
{
OnProgessNotify( 100 );
if ( fsIn != null ) fsIn.Close();
}
int segments = (int) (fileSize / m_segmentSize);
int remainder = (int) (fileSize % m_segmentSize); if (remainder > 0) segments++; byte[] buffer = new byte[m_blockSize]; int bytesRead = 0;
try
{
for (int i = 0; i < segments; i++)
{
FileStream fsOut = new FileStream(fileName + "." + i, FileMode.Create,FileAccess.Write);
int blocks = (int) (m_segmentSize / m_blockSize); for ( int j = 0; j < blocks ; j++)
{
bytesRead = fsIn.Read(buffer, 0, m_blockSize);
fsOut.Write(buffer, 0, bytesRead);
}
fsOut.Close();
OnProgessNotify ( Utilities.GetPercentComplete( i+1 , segments ) );
} return (int) segments;
}
finally
{
OnProgessNotify( 100 );
if ( fsIn != null ) fsIn.Close();
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货