合并两个文件,替换文件,获取文件大小
Posted lizhanzhe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了合并两个文件,替换文件,获取文件大小相关的知识,希望对你有一定的参考价值。
合并文件
void OpMergerFile(string readpath, string writepath)
{
// char cline;
// ifstream ifile;
// ofstream ofile;
// if (_access(readpath.c_str(), 0) == 0) {
//#ifdef WIN32
// ifile.open(readpath, ios::binary | ios::in); //读写都要以二进制形式,否则遇到/0就认为结束
// ofile.open(writepath, ios::binary | ios::app);
//#else
// ifile.open(readpath, ios::binary);
// ofile.open(writepath, fstream::app);
//#endif // WIN32
// while (ifile.get(cline))
// ofile << cline;
//
// ifile.close();
// ofile.close();
//}
char c;
FILE* rfp, *wfp;
fopen_s(&rfp, readpath.c_str(), "rb");
fopen_s(&wfp, writepath.c_str(), "a+b");
fseek(wfp, 0, SEEK_END);
while (fread(&c, 1, 1, rfp))
fwrite(&c, 1, 1, wfp);
fclose(rfp); fclose(wfp);
return; }
替换文件
void OpReplaceFile(string readpath,string writepath) { char cline; ifstream ifile; ofstream ofile; if (IfFileExist(readpath.c_str()) && IfFileExist(writepath.c_str())) { #ifdef WIN32 ifile.open(readpath, ios::binary); ofile.open(writepath, ios::binary); #else ifile.open(readpath); ofile.open(writepath); #endif // WIN32 while(ifile.get(cline)) ofile << cline; ifile.close(); ofile.close(); } return; }
拼接文件(保留其中一个文件不变)
void ToRightMergerFile(string MergerFilepath,string HoleFilePath) { std::string tmp = "./intertemp"; MergerFile(HoleFilePath, tmp); MergerFile(MergerFilepath,tmp); OpReplaceFile(tmp, MergerFilepath); remove(tmp.c_str()); }
获取文件大小
long GetFileLength(const std::string filepath) { long LocalFilelen = 0; FILE* pfile; #ifdef WIN32 if (fopen_s(&pfile, filepath.c_str(), "r") != 0) return 0; if(pfile) { fseek(pfile, 0, SEEK_SET); fseek(pfile, 0, SEEK_END); LocalFilelen = ftell(pfile); } #else pfile = fopen(filepath.c_str(), "r"); if(pfile) { fseek(pfile, 0, SEEK_SET); fseek(pfile, 0, SEEK_END); LocalFilelen = ftell(pfile); } #endif fclose(pfile); pfile = NULL; return LocalFilelen;
以上是关于合并两个文件,替换文件,获取文件大小的主要内容,如果未能解决你的问题,请参考以下文章
编写一个程序, 将 a.txt 文件中的单词与 b.txt 文件中的 单词交替合并到 c.txt 文件中, a.txt 文件中的单词用回车符 分隔, b.txt 文件中用回车或空格进行分隔。(代码片段