如何復制讀取大文件,也許困惑了很多人很長時間,這個不知道怎麼搞,的確讓人頭疼欲裂,知道了你就才發現原來那麼簡單,話不多說,直入正題````
static void Main(string[] args)
{
bool b= CopyFile(@"D:\360安全浏覽器下載\2.avi", @"D:\360安全浏覽器下載\3.avi");
if(b)
{
Console.WriteLine("復制成功");
}
else
{
Console.WriteLine("復制失敗");
}
Console.ReadKey();
}
/// <summary>
/// 大文件多次復制文件 true:復制成功 false:復制失敗
/// </summary>
/// <param name="soucrePath">原始文件路徑</param>
/// <param name="targetPath">復制目標文件路徑</param>
/// <returns></returns>
public static bool CopyFile(string soucrePath, string targetPath)
{
try
{
//讀取復制文件流
using (FileStream fsRead = new FileStream(soucrePath, FileMode.Open, FileAccess.Read))
{
//寫入文件復制流
using (FileStream fsWrite = new FileStream(targetPath, FileMode.OpenOrCreate, FileAccess.Write))
{
byte[] buffer = new byte[1024 * 1024 * 2]; //每次讀取2M
//可能文件比較大,要循環讀取,每次讀取2M
while (true)
{
//每次讀取的數據 n:是每次讀取到的實際數據大小
int n = fsRead.Read(buffer, 0, buffer.Count());
//如果n=0說明讀取的數據為空,已經讀取到最後了,跳出循環
if (n == 0)
{
break;
}
//寫入每次讀取的實際數據大小
fsWrite.Write(buffer, 0, n);
}
}
}
return true;
}
catch (System.Exception ex)
{
return false;
}
}
其實就是一個方法CopyFile(),調用這個方法就可以了······