#include <stdio.h>
#include <io.h>
int main(int argc, char* argv[])
{
struct _finddata_t fd
int hFile = _findfirst( "D:\\temp\\*.*", &fd )
if (-1 != hFile)
{
int done = 0
while(0 == done)
{
if (_A_SUBDIR &fd.attrib)
printf ("子目录:")
printf("%s\n", fd.name)
done = _findnext( hFile, &fd )
}
_findclose( hFile )
}
return 0
}
已修改答复,请试验~~如果实在linux下,你可以用stat()函数查看,Windows下我不知道函数,通常我是在linux下做的。。
不过在Windows下,你可以使用
需要包含
#include
system("attrib"
+
szFileName)
看看,szFileName是你的文件名,写入
双引号
内~
比如文件叫a.c
你就
system("attrib
a.c")
即可~
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("无法获取文件大小,可能文件并不存在或不可读\n")
else printf("文件大小为%d\n", size)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)