C++的6种获取文件大小的方法

long getFileSize1(const char* strFileName)
{
    FILE * fp = fopen(strFileName, "r");
    fseek(fp, 0L, SEEK_END);
    long size = ftell(fp);
    fclose(fp);
    return size;
}

long getFileSize2(const char* strFileName)
{
    struct _stat info;
    _stat(strFileName, &info);
    long size = info.st_size;
    return size;
}

long getFileSize3(const char* strFileName)
{
    FILE* file = fopen(strFileName, "rb");
    if (file)
    {
        long size = filelength(fileno(file));
        fclose(file);
        return size;
    }
    return 0;
}

ULONGLONG getFileSize4(const char* strFileName)
{
    CFile cfile;
    if (cfile.Open(strFileName, CFile::modeRead))
    {
        ULONGLONG size = cfile.GetLength();
        return size;
    }
    return 0;
}

long getFileSize5(const char* strFileName)
{
    HANDLE handle = ::CreateFile(strFileName, FILE_READ_EA, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
    if (handle != INVALID_HANDLE_VALUE)
    {
        long size = ::GetFileSize(handle, NULL);
        ::CloseHandle(handle);
        return size;
    }
    return 0;
}

long getFileSize6(const char* strFileName)
{
    std::ifstream in(strFileName);
    if (!in.is_open()) return 0;

    in.seekg(0, std::ios_base::end);
    std::streampos sp = in.tellg();
    return sp;
}

时间: 2024-09-16 21:31:05

C++的6种获取文件大小的方法的相关文章

php获取文件大小的方法

 这篇文章主要介绍了php获取文件大小的方法,需要的朋友可以参考下  代码如下: static function convert($size) {          $unit=array('b','kb','mb','gb','tb','pb');          return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];      }      也可用下面这种方法   代码如下:   /**  *

js+ajax实现获取文件大小的方法_javascript技巧

本文实例讲述了js+ajax实现获取文件大小的方法.分享给大家供大家参考,具体如下: 顾名思义,通过JS和Ajax来获取上传文件的大小,在上传之前可以有个判断,对上传的文件有所控制,因为js控制文件大小(JS获取文件大小)有些问题,具体大家试下就知道了,在此整理了一下ajax的获取文件大小的方法,比较好用,再调试过程中,出现了c:/fakepath/ 的错误,也将解决方案罗列在下面,以供大家参考 废话少说,代码如下 JS如下: <script language="Jscript"

VB获取文件大小的方法_vb

本文实例讲述了VB获取文件大小的方法.分享给大家供大家参考.具体实现方法如下: <% ' Copyright (c) 2009, reusablecode.blogspot.com; some rights reserved. ' ' This work is licensed under the Creative Commons Attribution License. To view ' send a letter to Creative Commons, 559 Nathan Abbott

php获取文件大小的方法_php技巧

复制代码 代码如下: static function convert($size) {         $unit=array('b','kb','mb','gb','tb','pb');         return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];     } 也可用下面这种方法 复制代码 代码如下: /** * Returns a human readable filesize */fu

C/C++多种方法获取文件大小

C/C++多种方法获取文件大小 #include <iostream> #include <io.h> #include <sys\stat.h> #include <afx.h> #define _AFXDLL using namespace std; void main() { // 此文件在工程打开状态下为不可访问 char* filepath = "..\\test.ncb"; // 方法一 struct _stat info;

JS获取几种URL地址的方法小结

 本篇文章主要是对JS获取几种URL地址的方法进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 以下为JS获取几种URL地址的方法    代码如下: thisURL = document.URL; thisHREF = document.location.href; thisSLoc = self.location.href; thisDLoc = document.location;   thisTLoc = top.location.href; thisPLoc = parent

JS获取几种URL地址的方法小结_javascript技巧

以下为JS获取几种URL地址的方法 复制代码 代码如下: thisURL = document.URL;thisHREF = document.location.href;thisSLoc = self.location.href;thisDLoc = document.location; thisTLoc = top.location.href;thisPLoc = parent.document.location;thisTHost = top.location.hostname;thisH

java 获取文件大小

Java 中如何获取文件的大小呢? 有两种方式 方式一:使用File 的length()方法; 方式二:使用FileInputStream的available()方法; 实例: Java代码   @Test       public void test01() throws IOException {           String filepath = "d:\\bin\\pushpoxy-0.0.1-SNAPSHOT.jar";           System.out.prin

【转】Java 获取文件大小所隐藏的BUG

由于本人不定期会整理相关博文,会对相应内容作出完善.因此强烈建议在原始出处查看此文. 今天写代码时需要实现获取文件大小的功能,目前有两种实现方法,一种是使用File的length()方法:另外一种是使用FileInputStream的available()方法,当InputStream未进行read操作时,available()的大小应该是等于文件大小的.但是在处理大文件时,后者会发生问题.我们来看一下: 在例子中,我使用了CentOS 6.5 的安装镜像文件,主要是考虑到这个文件足够大(大于2