亚洲av色香蕉一区二区三区,十四以下岁毛片带血a级,亚洲 校园 欧美 国产 另类,亚洲av日韩av一区谷露,色欲av无码一区二区三区

  • 相關(guān)軟件
    >如何將一個文件分割成多個小文件 創(chuàng)建者:webmaster 更新時間:2005-05-17 23:57

    你也許會遇到到這樣一個問題?當你有一個較大的軟件,而無法用一張軟盤將其全部拷下時,你也許會想到該將它分解開,分盤拷回去后,再將它們合并起來?,F(xiàn)在的這種分割工具很多,你想自己動手做一個適合自己的分割工具么?下面就讓我用以前用VC做的一個<袖珍文件分割器>的例程來告訴你吧!程序運行后界面如下圖:

    基本構(gòu)成思想:文件分割的基本思想比我之前發(fā)表的另一篇文章既綰謂喔鑫募喜⑽桓隹芍蔥諧絳潁鏡墓鉤傷枷爰虻ザ嗔耍饕卜治指釵募禿喜⒎指詈蟮奈募蟛糠幀7指釵募?,将原文件按指定分府岓小进行荡_鄭緩笏承蚨寥∑渲付ǚ指畬笮∈鶯蟮叫吹礁髯緣男陸ㄎ募?。合并文件,将各分割后的文件顺序读取后,写葰杞一个文件中既總?

    1、分割文件時:打開文件,讀取指定的分割大小一段數(shù)據(jù),寫入到一新建文件中,接著再讀同樣大小的一段數(shù)據(jù),再寫入到一新建文件中……,直到讀出文件最后一部分數(shù)據(jù),寫入到最后一個新建文件中。對每一個分割后的新建文件名,采用原文件名前加數(shù)字信息的方法,按分割的順序,按個加上一數(shù)字標識信息,以便合并時使用。
    分割文件的部分代碼實現(xiàn)如下:
    //文件分割涵數(shù)
    int CFileSpltDlg::SplitMe()
    {
    …… (省略:此部分代碼實現(xiàn)省略掉)
    //分割文件
    do {
    //動態(tài)建立一個新建文件名的前的數(shù)字
    name = _ltoa(l, buff, 10);
    name += _T("_");
    CString newpath;

    //判斷選擇目錄未尾是否已有"\"符
    if(m_targetpath.Right(1)=='\\')
    newpath = m_targetpath;
    else
    newpath = m_targetpath + _T("\\");
    if (!destFile.Open(newpath + name + m_SourceFile.GetFileName(),
    CFile::modeWrite |
    CFile::shareExclusive |
    CFile::typeBinary |
    CFile::modeCreate, &ex)) {
    TCHAR szError[1024];
    ex.GetErrorMessage(szError, 1024);
    ::AfxMessageBox(szError);
    m_SourceFile.Close();
    return 1;
    }
    do {
    dwRead = m_SourceFile.Read(buffer, nCount);
    destFile.Write(buffer, dwRead);
    }//當文件小于指定要分割的大小時
    while (dwRead > 0 && destFile.GetLength() < newlen);
    destFile.Close();

    l++;
    UpdateWindow();
    }while (dwRead > 0);
    m_SourceFile.Close();
    return 0;


    2、合并文件時:和上面分割所采用的方法相反,將各個分割后的小文件讀出后,按其分割后文件名前數(shù)字大小的順序,按個寫入到新建的文件中,這一新建文件的名字,為去掉分割后文件前面數(shù)字部分后的文件名(既原文件名)。
    合并文件的部分代碼實現(xiàn)如下:
    // 文件合并涵數(shù)
    int CFileSpltDlg::MergeMe()
    {
    …… (省略:此部分代碼實現(xiàn)省略掉)
    //開始合并文件
    do {
    //自動定位分割文件名前的數(shù)字信息
    pref = _ltoa(l, buff, 10);
    pref += _T("_");
    //打開新的分割文件
    if (!m_SourceFile.Open(newpath + pref + m_filename,
    CFile::modeRead |
    CFile::shareExclusive |
    CFile::typeBinary, &ex)) {
    TCHAR szError[1024];
    ex.GetErrorMessage(szError, 1024);
    destFile.Close();
    m_path = _T("");
    m_filename = _T("");
    newpath = _T("");
    UpdateData(FALSE);
    return 0;
    }
    else
    //形成一個新的文件名
    name = _T(newpath + pref + m_filename);
    do {//寫入到目標文件中
    dwRead = m_SourceFile.Read(buffer, nCount);
    destFile.Write(buffer, dwRead);
    }while (dwRead > 0);

    m_SourceFile.Close();

    l++;
    UpdateWindow();
    }while (l < 500);//little bit dirty solution, but you can always improve it!...

    return 0;
    }

    以上各部分代碼的具體實現(xiàn),請在下載例程后,參看源代碼既可。

    聯(lián)系方式:
    地址:陜西省西安市勞動路2號院六單元
    郵編:710082
    作者EMAIL:jingzhou_xu@163.net
    相關(guān)文章
    本頁查看次數(shù):