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 方法後將記憶體中 緩衝中 的資料寫入檔案。如果檔案非常大,...