精品国产亚洲一区二区三区,男女作爱在线观看免费网站,欧美的又大又长做禁片A片,97国产精品人妻无码久久久

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

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

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

    1、分割文件時(shí):打開文件,讀取指定的分割大小一段數(shù)據(jù),寫入到一新建文件中,接著再讀同樣大小的一段數(shù)據(jù),再寫入到一新建文件中……,直到讀出文件最后一部分?jǐn)?shù)據(jù),寫入到最后一個(gè)新建文件中。對每一個(gè)分割后的新建文件名,采用原文件名前加數(shù)字信息的方法,按分割的順序,按個(gè)加上一數(shù)字標(biāo)識信息,以便合并時(shí)使用。
    分割文件的部分代碼實(shí)現(xiàn)如下:
    //文件分割涵數(shù)
    int CFileSpltDlg::SplitMe()
    {
    …… (省略:此部分代碼實(shí)現(xiàn)省略掉)
    //分割文件
    do {
    //動(dòng)態(tài)建立一個(gè)新建文件名的前的數(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);
    }//當(dāng)文件小于指定要分割的大小時(shí)
    while (dwRead > 0 && destFile.GetLength() < newlen);
    destFile.Close();

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


    2、合并文件時(shí):和上面分割所采用的方法相反,將各個(gè)分割后的小文件讀出后,按其分割后文件名前數(shù)字大小的順序,按個(gè)寫入到新建的文件中,這一新建文件的名字,為去掉分割后文件前面數(shù)字部分后的文件名(既原文件名)。
    合并文件的部分代碼實(shí)現(xiàn)如下:
    // 文件合并涵數(shù)
    int CFileSpltDlg::MergeMe()
    {
    …… (省略:此部分代碼實(shí)現(xiàn)省略掉)
    //開始合并文件
    do {
    //自動(dòng)定位分割文件名前的數(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
    //形成一個(gè)新的文件名
    name = _T(newpath + pref + m_filename);
    do {//寫入到目標(biāo)文件中
    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;
    }

    以上各部分代碼的具體實(shí)現(xiàn),請?jiān)?a target=_blank>下載例程后,參看源代碼既可。

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