C语言下,获取文件信息 http://qimo601.iteye.com/blog/1517413

本文介绍了使用C语言获取文件信息的方法,包括文件大小、创建时间等,并提供了通过struct stat结构体进行操作的具体代码示例。此外,还展示了利用Qt中的QFileInfo类轻松获取文件详细信息的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://qimo601.iteye.com/blog/1517413


C语言下,获取文件信息

C语言下,如何获取文件的生成时间,日期和文件大小等文件信息。

    1、标准库函数并未提供对应的实现,这个Linux上GCC中struct stat的资料
C代码   收藏代码
  1. struct stat {  
  2.     dev_t         st_dev;      /* device */  
  3.     ino_t         st_ino;      /* inode */  
  4.     mode_t        st_mode;     /* protection */  
  5.     nlink_t       st_nlink;    /* number of hard links */  
  6.     uid_t         st_uid;      /* user ID of owner */  
  7.     gid_t         st_gid;      /* group ID of owner */  
  8.     dev_t         st_rdev;     /* device type (if inode device) */  
  9.     off_t         st_size;     /* total size, in bytes */  
  10.     blksize_t     st_blksize;  /* blocksize for filesystem I/O */  
  11.     blkcnt_t      st_blocks;   /* number of blocks allocated */  
  12.     time_t        st_atime;    /* time of last access */  
  13.     time_t        st_mtime;    /* time of last modification */  
  14.     time_t        st_ctime;    /* time of last change */  
  15. };  
 
   实现:

C代码   收藏代码
  1.    
  2. int fd,size;  
  3. struct stat buf;  
  4.   
  5. fd=open("file",O_RDONLY);  
  6. fstat(fd,&buf);  
  7. size=buf.st_size;  
 
  2、也可以这样直接得到文件的大小

C代码   收藏代码
  1.        // 将指针定位到文件末尾  
  2.        fseek( pFile, 0L, SEEK_END );  
  3. //告诉当前指针位置,Byte  
  4.        fileSize = ftell( pFile );  
   
  3、可以通过Qt中QFileInfo很方便就获取到文件信息

Cpp代码   收藏代码
  1. //打开文件    
  2. QFileInfo f("./test.txt");    
  3. //获取文件创建时间    
  4. QDateTime createTime=f.created();    
  5. //获取文件最后更新时间    
  6. QDateTime updateTime=f.lastModified();    
  7. //获取文件最后浏览时间    
  8. QDateTime lastRTime=f.lastRead();   
package java_work; import java.util.Scanner; public class qimo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 预设的银行卡号和密码 String correctCardNumber = "123456"; String correctPassword = "123456"; // 初始余额 double balance = 1000.0; // 登录验证 System.out.println("欢迎使用银行系统,请登录:"); boolean isLoggedIn = false; while (!isLoggedIn) { System.out.print("请输入银行卡号: "); String cardNumber = scanner.nextLine(); System.out.print("请输入密码: "); String password = scanner.nextLine(); // 验证卡号和密码 if (cardNumber.equals(correctCardNumber) && password.equals(correctPassword)) { isLoggedIn = true; System.out.println("登录成功!欢迎李四"); } else { System.out.println("卡号或密码错误,请重新登录!"); } } // 主菜单 while (isLoggedIn) { System.out.println("\n请选择操作:"); System.out.println("1. 存款"); System.out.println("2. 取款"); System.out.println("3. 查看余额"); System.out.println("0. 退出"); int choice; try { System.out.print("请输入您的选择: "); choice = Integer.parseInt(scanner.nextLine()); } catch (NumberFormatException e) { System.out.println("请输入有效的数字!"); continue; } switch (choice) { case 1: // 存款 System.out.print("请输入存款金额: "); try { double depositAmount = Double.parseDouble(scanner.nextLine()); if (depositAmount > 0) { balance += depositAmount; System.out.println("存款成功!当前余额: " + balance); } else { System.out.println("存款金额必须大于0!"); } } catch (NumberFormatException e) { System.out.println("请输入有效的金额!"); } break; case 2: // 取款 System.out.print("请输入取款金额: "); try { double withdrawAmount = Double.parseDouble(scanner.nextLine()); if (withdrawAmount > 0 && withdrawAmount <= balance) { balance -= withdrawAmount; System.out.println("取款成功!当前余额: " + balance); } else if (withdrawAmount <= 0) { System.out.println("取款金额必须大于0!"); } else { System.out.println("余额不足,取款失败!"); } } catch (NumberFormatException e) { System.out.println("请输入有效的金额!"); } break; case 3: // 查看余额 System.out.println("当前余额: " + balance); break; case 0: // 退出 System.out.println("感谢使用,再见!"); isLoggedIn = false; break; default: System.out.println("无效的选择,请重新输入!"); } } scanner.close(); } } 这段代码帮分别从宏观的角度分析运用原理与微观的角度分析每一句代码的含义与意义
05-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值