1 如何得到文件大小
方法有好几个 但有的受 *** 作系统限制 此处提供一个比较通用的:
long GetFileSize(char filename)
{
long siz = 0;
FILE fp = fopen(filename, "rb");
if (fp) {
fseek(fp, 0, SEEK_END);
siz = ftell(fp);
fclose(fp);
}
return siz;
}
2 如何删除文件
方法也有好几个 但有的受 *** 作系统限制 此处提供一个比较通用的:
unlink(filename);
我测试了你的代码:
#include<stdioh>#include<stringh>
#include<stdlibh>
void main()
{
FILE p=fopen("d:\\jiuibftxt","rt");
int length = 0;
for(;fgetc(p)!=EOF;length++);
fclose(p);
printf("第一种方式,文件长度=%d\n",length);
p=fopen("d:\\jiuibftxt","rb");
fseek(p,0,2);
length=ftell(p);
fclose(p);
printf("第二种方式,文件长度=%d\n",length);
}
文本文件的内容是:
FILE p=("jiuibftxt","rt");
int length;
for(;fgetc(p)!=EOF;length);
FILE p=(jiuibftxt","rb");
int length;
fseek(p,0,2);
length=ftell(p);
程序的输出是:
原因分析:
在windows下,以文本方式写入文件的\n会被转换为\r\n(也就是0x0D0A),输出的时候,\r\n会被转换回\n。
fgetc在读入时会将\r\n转换成一个\n;上面的文本文件有6个回车换行。
所以第一种方式比第二种方式少6
C语言获得文件的长度方式就是第二种:
FILEfp;fp=fopen("localfile","rb");// localfile文件名
fseek(fp,0,SEEK_SET);
fseek(fp,0,SEEK_END);
long longBytes=ftell(fp);// longBytes就是文件的长度
#include<stdioh>
#include<stdlibh>
void main()
{
FILEfp;
int a;
if((fp=fopen("1txt","rb"))==NULL)
{
printf("此文件无法打开");
exit(0);
}
fseek(fp,0,2);
a=ftell(fp);
printf("%d\n",a);
fclose(fp);
}
望采纳!
1MFC中的方法:(C++)
CFileStatus status;
CFile::GetStatus("D:\\testtxt",status);
long lSizeOfFile;
lSizeOfFile = statusm_size;
lSizeOfFile的值就是D:\\testtxt文件的大小
2标准C获得文件大小的5种方法
(注意:"__FILE__"指的是当前文件,你可以改为有效路径的目标文件,比如"D:\\testtxt")
#include "stdafxh"
#include "stdioh"
#include <sys/stath>
#include <ioh>
#include <FCNTLH>
int getfilesize()
{
int iresult;
struct _stat buf;
iresult = _stat(__FILE__,&buf);
if(iresult == 0)
{
return bufst_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;
}
#include <ioh>
#include <stdioh>
int main(void)
{
FILE f = 0; int fn = 0, sz = 0;
f = fopen("c:\\abctxt", "rb");
if(!f) {
fprintf(stderr, "File Not Found\n");
return 0;
}/end if/
fn = _fileno(f); /取得文件指针的底层流式文件号/
sz = _filelength(fn);/根据文件号取得文件大小/
printf("文件abctxt大小为:%d字节\n", sz);
fclose(f);
return 0;
}/end main/
备注:上述程序适用于任何一种文件,都可以直接求出大小。
以上就是关于请问C语言如何得到文件大小,如何删除文件全部的内容,包括:请问C语言如何得到文件大小,如何删除文件、C语言获取txt文件大小两种方法的差异、c语言如何计算文件大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)