C语言下,如何获取文件的生成时间,日期和文件大小等文件信息。
1、标准库函数并未提供对应的实现,这个Linux上GCC中struct stat的资料
struct stat { dev_t st_dev; /* device */ ino_t st_ino; /* inode */ mode_t st_mode; /* protection */ nlink_t st_nlink; /* number of hard links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ dev_t st_rdev; /* device type (if inode device) */ off_t st_size; /* total size, in bytes */ blksize_t st_blksize; /* blocksize for filesystem I/O */ blkcnt_t st_blocks; /* number of blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ time_t st_ctime; /* time of last change */ };
实现:
int fd,size; struct stat buf; fd=open("file",O_RDONLY); fstat(fd,&buf); size=buf.st_size;
2、也可以这样直接得到文件的大小
// 将指针定位到文件末尾 fseek( pFile, 0L, SEEK_END ); //告诉当前指针位置,Byte fileSize = ftell( pFile );
3、可以通过Qt中QFileInfo很方便就获取到文件信息
//打开文件
QFileInfo f("./test.txt");
//获取文件创建时间
QDateTime createTime=f.created();
//获取文件最后更新时间
QDateTime updateTime=f.lastModified();
//获取文件最后浏览时间
QDateTime lastRTime=f.lastRead();