c语言如何通过文件属性获取文件大小

c语言如何通过文件属性获取文件大小,第1张

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

//文件大小吵数仔

time_t

st_atime

time_t

st_mtime

time_t

st_ctime

}

stat(const

char

*,

struct

_stat

*)

//根据文件名得到文件属性

参考代码:

#include <sys/stat.h>

void main( )

{

struct stat buf

if ( stat( "test.txt", &buf ) <0 )

{

perror( "stat" )

return

}

printf("file size:%d\n", buf.st_size )

}

1.先用fseek将文件指针移到文件末尾,再用ftell获取文件内指针当前的文件位置。这个位置就是文件大小。迟裤

2.#include <stdio.h>

int main()

{

    FILE *pf = fopen("F:/1.png", "rb")

    if (!pf)

        return -1

   凳慎 fseek(pf, 0, SEEK_END) // 移到文件末尾

    printf("size = %d\n", ftell(pf))

    fclose(pf)

  码粗简  return 0

}

3.运行结果如下

attrib为dos下修改文件属性的命令,其格式如下:

ATTRIB

[+R

|

-R]

[+A

|

-A

]

[+S

|

-S]

[+H

|

-H]

[drive:][path][filename]

[/S

[/D]]

参数说明:

+

设定属性;

-

清除属性;

R

只读;

A

存档;

S

系统文件;

H

隐藏;

[drive:][path][filename]指定欲改变属性的文件夹或文件的路径,答明省略drive:,path时,默认为当前路径;

/S

处理当前文件夹和子文件夹中所有的文件;

/D

处理的项目包括子文件夹。

注意:修改除隐藏外的其他属性时,文件应为非隐藏!

比如:你想给文件c:\xxx.ext加上只读和隐藏羡族属性,可以这样写:attrib

+r

+h

c:\xxx.ext

去除改为-号就好了。

在C语言下使用system("attrib

+r

+h

c:\清派告\xxx.ext")来完成,代码如下:

#include

#include

void

main()

{

system("attrib

+r

c:\\data.txt")

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12196358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存