`

文件大小(转)

 
阅读更多

方法一:
 
WIN32_FIND_DATA fileInfo;
 HANDLE hFind;
 DWORD fileSize;
 const char *fileName = 文件的路径及名字;
 hFind = FindFirstFile(fileName ,&fileInfo);
 if(hFind != INVALID_HANDLE_VALUE)
 fileSize = fileInfo.nFileSizeLow;
 FindClose(hFind);
 
方法二:
 
HANDLE hFile; // the file handle
 DWORD dwFileSize; // temporary storage for file sizes
 
// Create the test file. Open it "Create Always" to overwrite any
 // existing file. The data is re-created below.
 hFile = CreateFile(lpcTheFile, GENERIC_READ | GENERIC_WRITE, 0, NULL,
 CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
 
if (hFile == INVALID_HANDLE_VALUE) {
 printf("hFile is NULL\n");
 return 4;
 }
 dwFileSize = GetFileSize(hFile, NULL);
 printf("hFile size: %10d\n", dwFileSize);
 




**************************************************************************************
 
C和C++获取文件大小的方法总结
 2008年03月31日 星期一 14:21
 1.MFC中的方法:(C++)
 
CFileStatus status;
 CFile::GetStatus("D:\\test.txt",status);
 long lSizeOfFile;
 lSizeOfFile = status.m_size;
 
lSizeOfFile的值就是D:\\test.txt文件的大小
 
2.标准C获得文件大小的5种方法
 (注意:"__FILE__"指的是当前文件,你可以改为有效路径的目标文件,比如"D:\\test.txt")
 #include "stdafx.h"
 #include "stdio.h"
 #include <sys/stat.h>
 #include <io.h>
 #include <FCNTL.H>
 

int getfilesize()
 {
     int iresult;
     struct _stat buf;
     iresult = _stat(__FILE__,&buf);
     if(iresult == 0)
     {
         return buf.st_size;
     }
     return NULL;
 }
 
int getfilesize01()
 {
     int fp;
     fp=_open(__FILE__,_O_RDONLY);
     if(fp==-1)
         return NULL;
     return _filelength(fp);
     //return NULL;
 }
 
int getfilesize02()
 {
     int fp;
     fp=_open(__FILE__,_O_RDONLY);
     if(fp==-1)
         return NULL;
     return _lseek(fp,0,SEEK_END);
     //return NULL;
 }
 
int getfilesize03()
 {
     int fp;
     fp=_open(__FILE__,_O_RDONLY);
     if(fp==-1)
         return NULL;
     return _lseek(fp,0,SEEK_END);
     //return NULL;
 }
 
int getfilesize04()
 {
     FILE *fp;
     if((fp=fopen(__FILE__,"r"))==NULL)
         return 0;
     fseek(fp,0,SEEK_END);
     return ftell(fp);    //return NULL;
 }
 
int getfilesize05()
 {
     FILE *fp;
     char str[1];
     if((fp=fopen(__FILE__,"rb"))==NULL)
         return 0;
     for(int i = 0;!feof(fp);i++)
     {
         fread(&str,1,1,fp);
        
    }
     return i - 1;    //return NULL;
 }
 
int main(int argc, char* argv[])
 {
     printf("getfilesize()=%d\n",getfilesize());
     printf("getfilesize01()=%d\n",getfilesize01());
     printf("getfilesize02()=%d\n",getfilesize02());
     printf("getfilesize03()=%d\n",getfilesize03());
     printf("getfilesize04()=%d\n",getfilesize04());
     printf("getfilesize05()=%d\n",getfilesize05());
     return 0;
 }

 
**************************************************************************************
 VC获取文件夹大小代码:
 
以下是代码片段:
 
DWORD64 GetFolderSize(LPCTSTR szPath, DWORD *dwFiles, DWORD *dwFolders)
 {
 TCHAR szFileFilter[512];
 TCHAR szFilePath[512];
 HANDLE hFind = NULL;
 WIN32_FIND_DATA fileinfo;
 DWORD64    dwSize = 0;
 
strcpy(szFilePath,szPath);
 strcat(szFilePath,"\\");
 strcpy(szFileFilter,szFilePath);
 strcat(szFileFilter,"*.*");
 

hFind = FindFirstFile(szFileFilter,&fileinfo);
 do
 {
    if(fileinfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
    {
     if (!strcmp(fileinfo.cFileName,".") || !strcmp(fileinfo.cFileName,".."))
     {
      //Do nothing for "." and ".." folders
     }
     else
     {
      TCHAR sztmp[512];
      strcpy(sztmp,szFilePath);
      strcat(sztmp,fileinfo.cFileName);
      dwSize = dwSize + GetFolderSize(sztmp);
      if(dwFolders != NULL)
      {
       ++(*dwFolders);
      }
     }
    }
    else
    {
     if(dwFiles != NULL)
     {
      ++(*dwFiles);
     }
    }
 
   dwSize += fileinfo.nFileSizeLow;
 
}while(FindNextFile(hFind,&fileinfo));
 
FindClose(hFind);
 return dwSize;
 }
分享到:
评论

相关推荐

    易语言API转换文件大小

    "易语言API转换文件大小"是一个关键的主题,它涉及到如何利用API函数来获取文件的大小,并将其转换为用户友好的格式。下面将详细介绍这个主题的相关知识点。 1. **API调用**: 易语言虽然提供了自己的库函数,但在...

    Delphi 获取文件大小(转换为单位兆(M))

    获取文件大小函数,文件大小单位转换为兆(M),并保留两位小数。

    文件大小和最后修改日期的转换

    根据给定的文件信息,我们可以总结出以下关于“文件大小和最后修改日期的转换”的相关知识点: ### 一、文件最后修改日期的获取与格式化 #### 1. 获取文件最后修改时间 在Java中,可以通过`java.io.File`类中的`...

    易语言-文件大小转换源码 字节转换成KB/MB/GB

    在IT领域,尤其是在编程和数据处理中,经常需要进行文件大小单位之间的转换。"易语言-文件大小转换源码 字节转换成KB/MB/GB"这个标题和描述揭示了一个关键知识点,即如何使用易语言(Easy Language)来实现这个功能...

    ios指定路径文件大小

    请注意,文件大小的单位转换通常基于1024进制(1KB = 1024B,1MB = 1024KB,以此类推),但在实际存储设备中,制造商通常使用1000进制(1KB = 1000B,1MB = 1000KB,等)。因此,在实际应用中,你可能需要根据实际...

    js判断上传文件的大小(兼容火狐、谷歌、IE、360浏览器)

    1. **文件大小限制**:根据业务需求设定合理的文件大小上限。 2. **跨浏览器兼容性**:支持主流浏览器,如Chrome、Firefox、Internet Explorer和360浏览器等。 3. **友好提示**:当文件大小超过限制时,应向用户提供...

    将文件大小变成相应的字符串

    ### 将文件大小变成相应的字符串 #### 知识点概览 本文主要介绍了一段用于将文件大小转换为易于理解的字符串格式(如“1.41KB”或“1.32MB”)的Visual Basic (VB) 源代码。此功能在多种场景下都非常实用,例如在...

    易语言取文件大小

    在这个场景下,“易语言取文件大小”指的是使用易语言编写代码来获取指定文件的字节数或者尺寸。下面将详细探讨如何在易语言中实现这一功能。 首先,我们需要理解“取文件大小”的概念。文件大小通常是指文件在磁盘...

    计算文件大小的php代码类.zip

    这个类可能采用了分块读取文件的方式,逐部分计算文件大小,避免一次性加载整个文件到内存中。 3. **错误处理**:当文件不存在或者没有权限访问时,该类可能会有相应的错误处理机制,返回错误信息或者抛出异常。 4...

    delphi获取文件大小

    在Delphi编程中,获取文件大小是一项常见的任务,特别是在处理用户上传文件或管理大量数据时。文件大小的获取有助于执行各种操作,例如限制上传文件的大小以优化存储和传输效率,或者在处理大文件时进行进度条显示。...

    文件大小字节转换成KB/MB/GB-易语言

    通过这样的转换,我们可以更好地管理和理解文件大小,尤其是在资源有限的环境下,如移动设备或网络传输,对文件大小的直观表示至关重要。易语言提供了简单易用的编程接口,使得开发者能够轻松地实现这些功能。

    二进制文件大小端转换工具,

    在计算机科学中,二进制文件大小端转换是一个重要的概念,尤其在处理跨平台数据交换时更为关键。大小端(Endian)是指在一个多字节的数据类型(如整型或浮点型)中,高字节和低字节的存储顺序。这种顺序在不同的...

    精彩编程与编程技巧-将文件大小变成相应的字符串...

    在`Form_Load`事件中,程序首先调用`OpenFile`函数打开文件,然后通过`GetFileSize`获取文件大小,最后调用`FormatKB`函数将文件大小转换为字符串并显示给用户。 ```vb Dim FileHandle As Long Dim strFileName As ...

    利用Zabbix监控数据库文件大小.docx

    利用 Zabbix 监控数据库文件大小 本文将围绕使用 Zabbix 监控数据库文件大小展开,让我们一起探索如何使用 Zabbix 监控数据库文件大小。 数据库文件大小监控的必要性 数据库文件大小的监控是非常重要的,因为...

    winform获取文件大小

    你可以通过`DirectoryInfo`类获取目录中的所有文件和子目录,然后对每个`FileInfo`对象调用`Length`属性来累加文件大小。 总结来说,通过C#的`FileInfo`和`DriveInfo`类,我们可以轻松地获取文件和磁盘的大小信息。...

    获取ftp服务器文件的大小

    ### 获取FTP服务器文件大小的知识点解析 在进行网络文件传输时,经常需要了解远程文件的大小,以便于更好地控制文件的下载进度或者进行其他相关的管理操作。本文将围绕“获取FTP服务器文件的大小”这一主题展开,...

    JS获取文件大小方法小结

    本文将介绍几种JavaScript获取文件大小的方法。 首先,我们来看方法一,使用ActiveX控件。这种方法适用于Internet Explorer浏览器,通过创建`ActiveXObject("Scripting.FileSystemObject")`来访问文件系统对象,...

    bin文件转txt文件工具

    "bin文件转txt文件工具"就是这样一个实用程序,它专为将二进制(bin)文件转换成文本(txt)文件而设计。这个工具由Visual Studio 2010开发,能够处理任意大小的bin文件,使得数据的解析和读取变得更加容易。 首先...

    减小SolidWorks文件大小的八种方法

    "减小SolidWorks文件大小的八种方法" 在使用SolidWorks软件设计和制作模型时,文件大小的控制是非常重要的。大的文件不仅影响文件传输的速度,还会影响设计和制作的效率。因此,减小SolidWorks文件大小的方法变得...

Global site tag (gtag.js) - Google Analytics