gpt4 book ai didi

c - 迭代目录中每个文件的方法?

转载 作者:行者123 更新时间:2023-11-30 16:19:04 25 4
gpt4 key购买 nike

我一直在寻找可以监视目录的文件创建/修改等的方法。但是我之前找到的所有针对 Windows 的帖子都是特定于 C++ 的。

微软确实列出了ReadDirectoryChangesW,但这也是针对C++的(我不知道评估它们是否与C兼容)。我只了解 Linux 上的 inotify,这相当简单,并且想知道是否有 Windows 等效项的简单示例? (我不想在 Windows 上使用 inotify,尽管它在技术上是可以实现的)。

最佳答案

如果您只是在寻找方法,也许这会有所帮助: https://www.geeksforgeeks.org/c-program-list-files-sub-directories-directory/(只是复制粘贴代码以防万一)

在linux机器上测试了一下,似乎可以工作。但不是递归的。

int main(void) 
{
struct dirent *de; /* Pointer for directory entry */

/* opendir() returns a pointer of DIR type. */
DIR *dr = opendir(".");

if (dr == NULL) /* opendir returns NULL if couldn't open directory */
{
printf("Could not open current directory" );
return 0;
}

/* Refer http://pubs.opengroup.org/onlinepubs/7990989775/xsh/readdir.html
for readdir() */
while ((de = readdir(dr)) != NULL)
printf("%s\n", de->d_name);

closedir(dr);
return 0;
}

此外,如果您需要检查列出的文件是否是目录,请参阅此问题: Checking if a dir. entry returned by readdir is a directory, link or file

此方法可能不像看起来那么便携,但值得一试。

干杯!

关于c - 迭代目录中每个文件的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55713807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com