如何用C语言获取文件的大小
没啥好的办法,只能用遍历解决,下面是完整的方法,但没考虑到隐藏文件和系统文件。
private long GetDictSize(string path)
{
if (!System.IO.Directory.Exists(path))
return 0;
string[] fs = System.IO.Directory.GetFiles(path, "*.*", System.IO.SearchOption.AllDirectories);
//获取该文件夹中所有的文件名
long ll = 0;
foreach (string f in fs) {
dynamic fa = System.IO.File.GetAttributes(f);
System.IO.FileInfo fi = new System.IO.FileInfo(f);
ll += fi.Length;
}
return ll;
}
c语言可以通过stat()函数获得文件属性,通过返回的文件属性,从中获取文件大小。
#include 可见以下结构体和函数
struct stat {
_dev_t st_dev;
_ino_t st_ino;
unsigned short st_mode;
short st_nlink;
short st_uid;
short st_gid;
_dev_t st_rdev;
_off_t st_size; //文件大小
time_t st_atime;
time_t st_mtime;
time_t st_ctime;
};
stat(const char *, struct _stat *); //根据文件名得到文件属性
参考代码:
#include void main( ){struct stat buf ;if ( stat( "test.txt", &buf ) < 0 ){perror( "stat" );return ;}printf("file size:%d
", buf.st_size );}
C语言中获取文件大小方式有很多,在不使用任何系统命令,仅使用C自身库函数情况下,常用方式有两种:
一、获取文件系统属性,读取文件大小。
在C语言库函数中有stat函数,可以获取文件的基本信息,其中就有文件大小。
#include <sys/stat.h>//包含头文件。
int file_size(char* filename)//获取文件名为filename的文件大小。
{
struct stat statbuf;
int ret;
ret = stat(filename,&statbuf);//调用stat函数
if(ret != 0) return -1;//获取失败。
return statbuf.st_size;//返回文件大小。
}
二、通过C语言文件操作,获取文件大小。
以fopen打开的文件,通过fseek可以定位到文件尾,这时使用ftell函数,返回的文件指针偏移值,就是文件的实际大小。
代码如下:
#include <stdio.h>//包含头文件。
int file_size(char* filename)//获取文件名为filename的文件大小。
{
FILE *fp = fopen(filename, "rb");//打开文件。
int size;
if(fp == NULL) // 打开文件失败
return -1;
fseek(fp, 0, SEEK_END);//定位文件指针到文件尾。
size=ftell(fp);//获取文件指针偏移量,即文件大小。
fclose(fp);//关闭文件。
return size;
}
三、注意事项:
第一种方式为直接读取文件信息,无需打开文件,所以更高效。
四、测试代码:
以上接口函数,均可以用如下主函数测试:
#include <stdio.h>
int main()
{
char s[100];
int size;
scanf("%s",s);//输入文件名
size = file_size(s);//获取文件大小。
if(size == -1) printf("无法获取文件大小,可能文件并不存在或不可读
");
else printf("文件大小为%d
", size);
return 0;
}
c语言中,怎么知道文件的大小呢
fseek(fp, 0L, SEEK_END);sz = ftell(fp);其中sz就是文件的大小。当你知道文件的大小后,就可以通过fseek重新定义到文件开始的位置:fseek(fp, 0L, SEEK_SET);或使用下面的函数定义的文件开始:rewind(fp);可以到秒秒学上看看相关的内容,上面的课程讲解得可以的。
如何用C语言获取文件的大小
一、获取文件系统属性,读取文件大小。在C语言库函数中有stat函数,可以获取文件的基本信息,其中就有文件大小。include <sys\/stat.h>\/\/包含头文件。int file_size(char* filename)\/\/获取文件名为filename的文件大小。{ struct stat statbuf; int ret; ret = stat(filename,&statbuf);\/...
如何用C语言获取文件的大小
1、用stat()函数来获取 1 2 3 4 5 6 7 int main(){ struct stat st ;stat( "file.txt", &st );printf(" file size = %d\\n", st.st_size);return 0;} 2、用ftell()函数来获取 1 2 3 4 5 6 7 8 int main(){ FILE *fp;fp=fopen( "file.txt", "r");fseek(fp, 0...
如何用C语言获取文件的大小
方法一:利用纯C语言来获取文件大小 unsigned long get_file_size(const char *filename){ unsigned long size;FILE* fp = fopen( filename, "rb" );if(fp==NULL){ printf("ERROR: Open file %s failed.\\n", filename);return 0;} fseek( fp, 0L, SEEK_END );size=ftell(fp);fclose...
如何用C语言获取文件的大小
c语言可以通过stat()函数获得文件属性,通过返回的文件属性,从中获取文件大小。include <sys\/stat.h> 可见以下结构体和函数 struct stat { _dev_t st_dev;_ino_t st_ino;unsigned short st_mode;short st_nlink;short st_uid;short st_gid;_dev_t st_rdev;_off_t st_size; \/\/文件...
如何用C语言获取文件的大小
\/* 解题思路: 以只读方式打开某一文件,然后将文件指针定位在文件结尾的位置,利用ftell函数返回指针的在文件中的相对位置即可。*\/ include "stdio.h"main(){ FILE *fp; \/*定义文件指针*\/ long cnt; \/*定义变量cnt用来存储文件大小数据*\/ fp=fopen("c:\\\\1.txt","r"); \/*...
如何用C语言获取文件的大小
intfile_size(char*filename){ FILE*fp=fopen(filename,"r");if(!fp)return-1;fseek(fp,0L,SEEK_END);intsize=ftell(fp);fclose(fp);returnsize;}
c语言如何获得文件的创建时间以及文件的大小?(头文件及所用的函数,最...
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:\\...
C语言获取文件大小&读&写文件代码
本文提供了一套C语言代码,以实现文件大小获取、读取以及写入功能。代码通过三个文件实现,包括头文件“fGetFileInfo.h”,实现相关函数定义;源文件“fGetFileInfo.c”,实现函数逻辑;以及用于测试的“main.c”。具体而言,使用“fGetFileInfo.h”文件中的函数可以获取文件的大小,实现简单高效。在“f...
C语言-获取文件长度
C语言中没有直接获取文件长度的接口,但我们可以利用标准库提供的函数来实现这一功能。以下是两种获取文件长度的方法。使用C标准库获取文件长度 无论操作系统如何,只要它支持C标准库,我们就可以通过以下代码来获取文件长度:使用Linux的系统调用获取文件长度 在Linux操作系统下,我们可以使用stat函数来获取...