合并两个文件,替换文件,获取文件大小

合并文件   
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;

原文地址:https://www.cnblogs.com/lizhanzhe/p/10878151.html

时间: 2024-10-30 01:27:06

合并两个文件,替换文件,获取文件大小的相关文章

js上传文件前判断获取文件大小并且加以判断

描述:要求浏览器单个上传文件大小不超过10M. 解决方案: var fileSize = $("#fileId")[0].files[0].size/(1024*1024);if(fileSize>10){ $.dialog.alert("上传单个文件大小不能超过10MB!"); return false;} 原文地址:https://www.cnblogs.com/zyh-2017/p/10238021.html

C# 获取文件大小,创建时间,文件信息,FileInfo类的属性表

C# 获取文件大小,创建时间,文件信息,FileInfo类的属性表 2011-12-13 09:00:40| 分类: C# |举报|字号 订阅 OpenFileDialog openFileDialog1 = new OpenFileDialog(); if(openFileDialog1.ShowDialog() == DialogResult.OK) { openFileDialog1.FileName; System.IO.FileInfo file = new System.IO.Fil

linux shell 脚本获取和替换文件中特定内容

1.从一串字符串中获取特定的信息 要求1:获取本机IP:menu.lst为系统镜象的IP配置文件,需要从中获取到本机IP信息(从文件获取信息) 1 timeout 1 2 default 0 3 4 title live 5 find --set-root /casper/vmlinuz 6 kernel /casper/vmlinuz boot=casper ignore_uuid showmounts ip=eth0,10.0.66.66,255.255.240.0,10.0.64.3 7

delphi 合并两个 Wav 文件流的函数

delphi 合并两个 Wav 文件流的函数 合并两个 Wav 文件的函数 实例一 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); e

ios 关于文件操作 获取 文件大小

分类: Apple IPhone2012-06-28 11:31 4664人阅读 评论(0) 收藏 举报 ios语言manager测试c c语言 实现 #include "sys/stat.h" - (long long) fileSizeAtPath:(NSString*) filePath{ struct stat st;      if(lstat([filePath cStringUsingEncoding:NSUTF8StringEncoding], &st) == 

合并两个文件

原文:合并两个文件 源代码下载地址:http://www.zuidaima.com/share/1550463699438592.htm 使用java合并两个已存在的文件的内容到一个新的文件去 import java.io.*; package com.zuidaima.file.util; /** *@author www.zuidaima.com **/ class combinefile{ public static void main(String[] args) throws IOEx

awk合并两个文件

awk 合并两个文件: awk 'NR==FNR{a[i]=$0;i++}NR>FNR{print a[j]"    "$0;j++}' template interface > interface_last template: Template Log tqt_url-response-code Template Log tqt_url-response-code Template Log tqt_url-response-code Template Log tqt_ur

Shell合并两个文件成一个文件的两列

Shell合并两个文件成一个文件的两列 发布时间:2014-07-20   编辑:www.jquerycn.cn Shell合并两个文件成一个文件的两列,提供了两种方法,普通shell脚本,awk脚本. 文件内容如下:more eng.txt chi.txt ::::::::::::::eng.txt::::::::::::::semicoloncommadelimiterspacebarhyphensingle quotedouble quote ::::::::::::::chi.txt::

AS3批量替换文件

在做项目时,经过会遇到资源替换问题.比如配音公司,提供了一批八九百个配音MP3文件,用到后面却发现有些配音不能正常使用.可能是十几个,也可能是一两百个.只能是配音公司重新提供.因为之前的配音资源,已经生成指定的id,只有把替换资源放在相同的文件夹下,并且同名,才能替换使用.用代码实现成批替换: 替换前,目标文件夹: 替换资源文件夹: 替换后,目标文件夹: 打印出提示信息: 实现代码: package{ import flash.display.Sprite; import flash.files