如何在目录中读取文件时间戳

根凤凰

我想读取C目录中所有文件的统计信息(Linux:Fedora)

我已经声明了这种结构:

struct stat st = {0};  

然后,我检查目录是否存在。

if(stat("/home/gadre/Source",&st) == -1)
{
    status = mkdir("/home/gadre/Source", 0777);             
}
syslog(LOG_INFO, "Source Directory stage completed\n");     

stat是:

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 512B 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 */
};

现在,一旦我进入目录,我将要检查每个文件的最后修改时间st_mtime。

任何想法我应该使用哪种数据结构...应该先将fd存储在列表中,然后在其上进行迭代检查...什么是有效的方法。

谢谢。

dEIM

通用方法是循环播放,没有任何列表,例如容器,

  1. 打开目录的全路径dp = opendir(fullpath))并获取目录指针
  2. dp像这样循环阅读while ( (dirp = readdir(dp)) != NULL )
  3. 从Dirent结构中获取文件名 dirp->d_name
  4. 为filepahts构建新的完整路径,例如: filepath = fullpath + "/" + dirp->d_name
  5. 最后执行lstat以获取时间戳信息

PS我更喜欢使用,lstat因为目录中的文件之一可能是符号链接,在这种情况下,lstat它将返回符号链接本身的时间戳,而不是它指向的文件的时间戳。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在目录中(递归)查找最新修改文件的时间戳?

来自分类Dev

如何在Doobie(Postgres)中读取/写入时间戳

来自分类Dev

如何在模型文件中的插入上设置时间戳

来自分类Dev

如何在脚本中向文件添加时间戳

来自分类Dev

如何在某个目录的两个时间戳之间列出文件?(SunOS)

来自分类Dev

sas unix目录列表-如何以yyyymmmdd:hh:ss格式读取文件和最后修改的时间戳

来自分类Dev

如何在不修改目录的修改时间戳的情况下将文件添加到目录?

来自分类Dev

如何获取文件或目录的标准化日期/时间戳。在纯批处理脚本中?

来自分类Dev

如何获取文件或目录的标准化日期/时间戳。在纯批处理脚本中?

来自分类Dev

如何在bash脚本中的目录名称中找到最新的时间戳?

来自分类Dev

如何删除文件中的时间戳?

来自分类Dev

用于在 btrfs 中设置文件和目录时间戳的 API

来自分类Dev

如何在Firebase中验证时间戳?

来自分类Dev

如何在js中验证时间戳

来自分类Dev

Linux如何在文件名中列出大于特定时间戳的文件?

来自分类Dev

如何读取目录中的文件并写入文件

来自分类Dev

我如何根据Windows上C ++中的修改时间读取目录中的文件

来自分类Dev

如何在名称中带有ddmmyy时间戳的Bash中对文件进行排序

来自分类Dev

如何在不更改目录的修改时间戳的情况下删除临时文件?

来自分类Dev

从文件时间戳创建目录,然后将文件移动到bash中的该目录中

来自分类Dev

如何从python的Excel列表中读取时间戳

来自分类Dev

如何在Python的父目录中打开/读取/写入文件夹中的文件?

来自分类Dev

如何在Linux上的已签名PE文件中添加时间戳证书?

来自分类Dev

如何在我的输出文件中添加时间戳注释?

来自分类Dev

如何在Java中的gzip内的文件上获取时间戳

来自分类Dev

如何在我的输出文件中添加时间戳注释?

来自分类Dev

如何在`terraform`中创建带有时间戳的文件?

来自分类Dev

如何在Orion中存储时间戳或日期时间?

来自分类Dev

如何在MySQL时间戳中设置时间?

Related 相关文章

  1. 1

    如何在目录中(递归)查找最新修改文件的时间戳?

  2. 2

    如何在Doobie(Postgres)中读取/写入时间戳

  3. 3

    如何在模型文件中的插入上设置时间戳

  4. 4

    如何在脚本中向文件添加时间戳

  5. 5

    如何在某个目录的两个时间戳之间列出文件?(SunOS)

  6. 6

    sas unix目录列表-如何以yyyymmmdd:hh:ss格式读取文件和最后修改的时间戳

  7. 7

    如何在不修改目录的修改时间戳的情况下将文件添加到目录?

  8. 8

    如何获取文件或目录的标准化日期/时间戳。在纯批处理脚本中?

  9. 9

    如何获取文件或目录的标准化日期/时间戳。在纯批处理脚本中?

  10. 10

    如何在bash脚本中的目录名称中找到最新的时间戳?

  11. 11

    如何删除文件中的时间戳?

  12. 12

    用于在 btrfs 中设置文件和目录时间戳的 API

  13. 13

    如何在Firebase中验证时间戳?

  14. 14

    如何在js中验证时间戳

  15. 15

    Linux如何在文件名中列出大于特定时间戳的文件?

  16. 16

    如何读取目录中的文件并写入文件

  17. 17

    我如何根据Windows上C ++中的修改时间读取目录中的文件

  18. 18

    如何在名称中带有ddmmyy时间戳的Bash中对文件进行排序

  19. 19

    如何在不更改目录的修改时间戳的情况下删除临时文件?

  20. 20

    从文件时间戳创建目录,然后将文件移动到bash中的该目录中

  21. 21

    如何从python的Excel列表中读取时间戳

  22. 22

    如何在Python的父目录中打开/读取/写入文件夹中的文件?

  23. 23

    如何在Linux上的已签名PE文件中添加时间戳证书?

  24. 24

    如何在我的输出文件中添加时间戳注释?

  25. 25

    如何在Java中的gzip内的文件上获取时间戳

  26. 26

    如何在我的输出文件中添加时间戳注释?

  27. 27

    如何在`terraform`中创建带有时间戳的文件?

  28. 28

    如何在Orion中存储时间戳或日期时间?

  29. 29

    如何在MySQL时间戳中设置时间?

热门标签

归档