牛骨文教育服务平台(让学习变的简单)
博文笔记

fstream获得文件大小

创建时间:2016-12-23 投稿人: 浏览次数:185

如果是ifstream使用seekg和tellg:

    ifstream fsRead;
    fsRead.open(srcFilePath.c_str(), ios::in|ios::binary);
    if (!fsRead) {
        sec_error("Uncompress processing: can not open source file! [%s]",src_file_name);
        return -3;
    }
    fsRead.seekg(0, fsRead.end);
    size_t srcSize = fsRead.tellg();
    if (!srcSize) {
        sec_error("Source file: [%s] size is 0! Return directly!",srcFilePath.c_str());
        fsRead.close();
        sec_error("File closed successfully!");
        return 0;
    }
    sec_debug("Source file :[%s] size is : [%d]",srcFilePath.c_str(), srcSize);

如果是ofstream使用seekp和tellp
    ofstream fsWrite;
    fsWrite.open(destFilePath.c_str(), ios::out|ios::binary);
    if (!fsWrite) {
        fsRead.close();
        sec_error("Compress processing: can not open destination file! [%s]",des_file_name);
        return -3;
    }
    // Some work ...
    fsWrite.seekp(0, fsWrite.end);
    size_t dstFileSize = fsWrite.tellp();

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。