广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++通过文件指针获取文件大小的方法实现
  • 420
分享到

C++通过文件指针获取文件大小的方法实现

2024-04-02 19:04:59 420人浏览 泡泡鱼
摘要

目录1. 叙述 2. 结论1. 叙述  对于读取本地文件,很多时候需要预先知道本地文件的大小在进行读取。网上给出的方案是移动文件指针,计算文件头和文件尾的偏移,计

1. 叙述 

对于读取本地文件,很多时候需要预先知道本地文件的大小在进行读取。网上给出的方案是移动文件指针,计算文件头和文件尾的偏移,计算出文件的大小。但是我总觉得这样做可能会与读取文件一样消耗性能,为了解决这个问题,我写了如下例子验证了一下。

#include <iOStream>
#include <fstream>
#include<windows.h>

using namespace std;

class CTimer
{
public:
	CTimer(void);
	~CTimer(void);

	int time_in();
	double time_out();

private:
	LARGE_INTEGER litmp;
	LONGLONG Qt1, qt2;
	double dft, dff, dfm;
};

CTimer::CTimer(void)
{
}


CTimer::~CTimer(void)
{
}

int CTimer::time_in()
{
	QueryPerfORManceFrequency(&litmp);//获得时钟频率
	dff = (double)litmp.QuadPart;

	QueryPerformanceCounter(&litmp);//获得初始值
	qt1 = litmp.QuadPart;

	return 1;
}

double CTimer::time_out()
{
	QueryPerformanceCounter(&litmp);//获得终止值
	qt2 = litmp.QuadPart;

	dfm = (double)(qt2 - qt1);
	dft = dfm / dff;//获得对应的时间值

	return dft;
}


int main()
{
	string file_name = "D:/Work/test.zip";
	CTimer timer;

	ifstream ifs(file_name, std::ios::binary | std::ios::in);
	if (!ifs.is_open())
	{
		return 0;
	}

	
	timer.time_in();
	ifs.seekg(0, std::ios::end);
	int len = ifs.tellg();
	ifs.seekg(0, std::ios::beg);
	cout << "获取文件长度耗时:" << timer.time_out() << "秒" << endl;

	timer.time_in();

	char *buff = new char[len];

	ifs.read(buff, len);
	delete[]buff;

	timer.time_out();
	cout << "读取文件耗时:" << timer.time_out() << "秒" << endl;

	return 1;
}

如上所示,我写了一个计时器,分别统计偏移文件指针计算文件长度与读取整个文件的耗时,运行结果如下:

2. 结论

可以看到,偏移文件指针带来的时间消耗非常小,几乎可以忽略不记。通过这个方法,不仅可以很快计算文件长度,还可以根据需要读取文件的特定位置,从而达到节省性能的目的。

到此这篇关于c++通过文件指针获取文件大小的方法实现的文章就介绍到这了,更多相关C++ 文件指针获取文件大小内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++通过文件指针获取文件大小的方法实现

本文链接: https://www.lsjlt.com/news/161619.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++通过文件指针获取文件大小的方法实现
    目录1. 叙述 2. 结论1. 叙述  对于读取本地文件,很多时候需要预先知道本地文件的大小在进行读取。网上给出的方案是移动文件指针,计算文件头和文件尾的偏移,计...
    99+
    2022-11-12
  • Python实现通过文件路径获取文件hash值的方法
    本文实例讲述了Python实现通过文件路径获取文件hash值的方法。分享给大家供大家参考,具体如下: import hashlib import os,sys def CalcSha1(filepath...
    99+
    2022-06-04
    文件 路径 方法
  • MultipartFile获取文件名,文件大小,文件后缀等方法
    获取文件名及后缀信息: MultipartFile file = new MultipartFile();String file = file.getOriginalFilename() 获取文件名: MultipartFile file ...
    99+
    2023-08-31
    spring boot java
  • java获取文件大小的几种方法
    目前Java获取文件大小的方法有两种:通过file的length()方法获取;通过流式方法获取;通过流式方法又有两种,分别是旧的java.io.*中FileInputStream的available()方法和新的java..nio.*中的F...
    99+
    2023-05-31
    java 文件大小 ava
  • C#实现获取文件大小并进行比较
    目录一、实现功能二、核心脚本三、使用方法一、实现功能 ①需要获取到文件的大小然后进行合适单位的展示; ②将获取到的文件大小统一单位; ③能够进行文件大小与设置数值比较; ④两个文件比...
    99+
    2023-03-15
    C#获取文件大小 C# 文件大小
  • Python按行读取文件的实现方法【小文件和大文件读取】
    本文实例讲述了Python按行读取文件的实现方法。分享给大家供大家参考,具体如下: 小文件: #coding=utf-8 #author: walker #date: 2013-12-30 #funct...
    99+
    2022-06-04
    文件 大文件 方法
  • C#获取指定目录下指定文件的方法
    1.首先,需要指定获取的文件夹,以及获取文件的文件名; 文件夹:strLocalPath = System.Windows.Forms.Application.StartupPath...
    99+
    2022-11-13
  • 用c 获取文件MD5值的实现方法
    要使用C语言获取文件的MD5值,可以使用开源的MD5库,比如md5deep、OpenSSL或者GNU md5sum等。这里以Open...
    99+
    2023-08-15
    c
  • 在C++中获取文件大小的方式有哪些
    这篇文章给大家介绍在C++中获取文件大小的方式有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C++获取文件大小代码示例:#include < iostream> #inc...
    99+
    2023-06-06
  • C#如何实现获取文件大小并进行比较
    本文小编为大家详细介绍“C#如何实现获取文件大小并进行比较”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#如何实现获取文件大小并进行比较”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、实现功能①需要获取到文...
    99+
    2023-07-05
  • C++获取文件大小数值的三种方式介绍
    目录方式一方式二方式三总结方式一 推荐使用此方式获得文件大小! C/C++、Window、Linux 环境都可以使用! 通过结构体struct stat获得。 需要包含头文件:#in...
    99+
    2022-11-13
  • Android中通过MediaStore获取音乐文件信息方法
    Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过Content Provider的方式提...
    99+
    2022-06-06
    方法 音乐 Android
  • C#获取文件名和文件路径的两种实现方式
    目录C#获取文件名和文件路径方法一方法二C#通过文件路径获取文件名小技巧C#获取文件名和文件路径 方法一 OpenFileDialog open = new OpenFileDia...
    99+
    2022-11-13
  • C#获取文件夹所占空间大小的功能
    虽然现在硬盘越来越大,但是清理垃圾还是必要的。这时我们往往需要一个获取文件夹所占空间大小的功能,从而判断垃圾文件的位置。 这个时候,我们常用的在右键属性中查看文件夹所占空间的方法显得...
    99+
    2022-11-13
  • 在Python中获取文件的大小4种办法
    在Python中获取文件的大小4种办法 这篇文章将讨论如何在 Python 中获取文件的大小。 1.使用 os.stat() 功能 获取文件状态的标准解决方案是使用 os.stat() Python ...
    99+
    2023-09-03
    python 前端 javascript
  • JS怎么通过截取子串的方法获取文件扩展名
    本篇内容介绍了“JS怎么通过截取子串的方法获取文件扩展名”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本文...
    99+
    2022-10-19
  • C#三种方法获取文件的Content-Type(MIMEType)
    什么是ContentType 我们知道浏览器可以处理各种各样的内容,比如:HTML、XML、JPG、Flash等等,那么浏览器是如何区分它们的呢?答案就是MIME Type,即资源的...
    99+
    2022-11-12
  • Matlab实现获取文件夹下所有指定后缀的文件
    目录1. 要求2. 代码3. 参考1. 要求 获取指定文件夹下(包含子文件夹),所有指定后缀(如txt)的文件路径(即文件所在目录+文件名),返回一个字符串数组。 2. 代码 获取C...
    99+
    2022-11-13
    Matlab获取指定后缀文件 Matlab获取指定文件 Matlab 指定文件
  • C#如何获取文件夹所占空间大小的功能
    本篇内容主要讲解“C#如何获取文件夹所占空间大小的功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#如何获取文件夹所占空间大小的功能”吧!虽然现在硬盘越来越大,但是清理垃圾还是必要的。这时我...
    99+
    2023-07-02
  • 怎么通过PHP来实现文件大小限制的修改
    这篇“怎么通过PHP来实现文件大小限制的修改”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么通过PHP来实现文件大小限制的...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作