通過乙個mfc例項,將硬碟中的某個檔案拷貝到另乙個目標目錄中,並用進度條顯示拷貝進度。通過該例項熟悉以下3個應用:一是目錄瀏覽視窗的使用;二是大型檔案(佔上百兆)的讀寫及傳輸;三是精確顯示操作進度百分比。
(1)建立乙個對話方塊類cfilecopydlg及對話方塊,在上面顯示三個按鈕,分別是原始檔瀏覽(idc_add)、目標目錄瀏覽(idc_dest)、拷貝(idc_copy)。再放兩個編輯框控制項idc_edadd和idc_eddest,分別顯示原始檔全路徑和目標目錄全路徑。
class cfilecopydlg : public cdialog
}(3)目標目錄瀏覽按鈕的操作
void cfilecopydlg::onput()
}(4)拷貝按鈕的操作
void cfilecopydlg::oncopy()
m_fileproc.setpos(i);
m_fileproc.invalidate(); //設定並更新滑動條
writefile->writehuge(pvdata,readlen); //將指標內容寫入檔案
if(poslen==filelen) //傳輸完就退出迴圈
break;
}afxmessagebox("複製完成");
m_fileproc.setpos(0);
globalunlock(hglobal);
readfile->close();
writefile->close();
}需要注意的是:大檔案的傳遞和燒錄等過程都是乙個劃分成小單位操作的迴圈過程,都是以較小記憶體緩衝區進行操作的。
關於檔案在記憶體中讀寫的問題
這兩天遇到乙個算不上bug的問題,主要涉及到檔案的讀寫。資料庫表中有大量資料,可能不停的寫入資料,又要從該表中讀取未讀取的資料,所以每次從表中讀取完資料,將最後一條資料的id寫入到乙個檔案中,這樣下次讀取資料不需要從表的開頭讀取,可以永久的儲存記錄。下面是乙個測試程式 int count 0 whi...
Java IO讀寫大檔案的幾種方式及測試
讀取檔案大小 1.45g 第一種,oldio public static void oldioreadfile throws ioexceptionelse pw.close br.close 耗時70.79s 第二種,newio public static void newioreadfile t...
Linux 目錄檔案的瀏覽 管理及維護
快捷鍵ctrl shift n在終端中開啟另乙個命令視窗。如何要檢視命令的相關解釋,可以使用 命令 help的方式檢視,例如檢視cp命令如何使用,可以這麼寫 cp help 清屏操作,可以使用 clear命令。clear 追加內容到檔案中 echo 你好 dir1 dir2 dir3 123.txt...