FileStream大檔案複製

2022-02-07 10:44:15 字數 1292 閱讀 2333

filestream緩衝讀取和寫入可以提高效能。filestream讀取檔案的時候,是先講流放入記憶體,經flash()方法後將記憶體中(緩衝中)的資料寫入檔案。如果檔案非常大,勢必消耗效能。特封裝在filehelper中以備不時之需。參考文章:將該文章中提供的**少做修改,原文中進行了強制型別轉換,如果檔案很大,比如4g,就會出現溢位的情況,複製的結果位元組丟失嚴重,導致複製檔案和原始檔大小不一樣。這裡修改的**如下:

1

public

static

class

filehelper234

int left = (int)(fromfile.length -copied);

35 tocopylength = fromfile.read(buffer, 0

, left);

36fromfile.flush();

37 tofile.write(buffer, 0

, left);

38tofile.flush();

3940}41

else

4251

fromfile.close();

52tofile.close();

53return

true;54

}55 }

測試**:

1

class

program214

console.read();15}

1617 }

結果:

md5校驗結果:

檔案: d:\安裝檔案\新建資料夾\sqlsvrent_2008r2_chs.iso

大小: 4662884352 位元組

md5: d2bc1d35d987cc6cb8401bfb0a1e1bc9

sha1: 0eeff017b21635df33f33c47e31e911cb23390f7

crc32: 55ac3c56

檔案: f:\sqlsvrent_2008r2_chs.iso

大小: 4662884352 位元組

md5: d2bc1d35d987cc6cb8401bfb0a1e1bc9

sha1: 0eeff017b21635df33f33c47e31e911cb23390f7

crc32: 55ac3c56

C FileStream複製大檔案

即每次複製檔案的一小段,以節省總記憶體開銷。當然,本機複製也可以採用.net內部的system.io.file.copy方法。複製檔案 要複製的檔案 要儲存的位置 每次複製的長度 private void copyfile string fromfile,string tofile,int leng...

ubuntu下複製大檔案

ubuntu下複製大檔案 1.在伺服器上的檔案複製 cp 原始檔 目的檔案 cp 原始檔 目的資料夾 2.從一台伺服器上拷貝到另一台伺服器 scp username ip directory 本台伺服器的路徑 3.從硬碟拷貝檔案到伺服器 這裡複製的方法很多 操作最直觀的就是遠端客戶端的上傳,但是這個...

C FileStream複製大檔案功能

filestream緩衝讀取和寫入可以提高效能。每次複製檔案的一小段,以節省總記憶體開銷。當然,本機複製也可以採用.net內部的system.io.file.copy方法。filestream讀取檔案的時候,是先講流放入記憶體,經flash 方法後將記憶體中 緩衝中 的資料寫入檔案。如果檔案非常大,...