
我知道有<sys/stat.h>标题,但是:
struct stat { dev_t st_dev; /* ID of device containing file */ ino_t st_ino; /* inode number */ 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 ID (if special file) */ off_t st_size; /* total size,in bytes */ blksize_t st_blksize; /* blocksize for file system 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 status change */ };
并且off_t最大值是2147483647 (在我的机器上)并且小于2GB。
还有其他的方法吗?
我的 *** 作系统是Win32。
用于查找文件大小的Bash Shell脚本
在windows上添加/删除文件末尾的字节
使用cp时文件大小发生变化
PHP脚本:有多大?
文件大小 – 磁盘上使用的实际字节数(未分配)
哪里可以find一个用于减lessMSVC ++ / windows上二进制大小的分析器?
如何获得磁盘上确切的目录大小
如何获得大于4 Gb的文件大小?
根据linux / Ubuntu中的文件大小来压缩多个文件夹和文件
检查特定用户的特定目录的总文件大小
虽然有一个符合POSIX的stat64函数,但它在windows上不可用(正如另一个答案中提到的那样,尽管有一个_stat64函数)。
在windows中最合适的函数是GetfileAttributesEx 。
例如:
BOol result; WIN32_file_ATTRIBUTE_DATA fad; LONGLONG filesize; result = GetfileAttributesEx(filename,GetfileExInfoStandard,&fad); if (result) { filesize = ((LONGLONG)fad.nfileSizeHigh << 32) + fad.nfileSizeLow; }
对于windows上的文件 *** 作,您有两个选项。
找到适当的标准或半标准C或POSIX函数 – 在这种情况下, _stat64 。 如果您要编写更多可移植的代码,这将更有用,但即使如此,其他平台通常也存在不兼容问题。 (例如,linux没有_stat64 ;相反,它使用#define来使stat 64位有效。)
使用适当的windows API函数 – 在这种情况下, GetfileAttributesEx 。 对于纯windows应用程序,这可能比试图使用标准或半标准C和POSIX函数更容易,可能会暴露更多的功能。
总结以上是内存溢出为你收集整理的如何在不打开的情况下获得最大文件的大小?全部内容,希望文章能够帮你解决如何在不打开的情况下获得最大文件的大小?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)