我想扫描目录树并列出每个目录中的所有文件和文件夹。我创建了一个程序,可从网络摄像机下载图像并将其保存在本地。该程序根据图片的下载时间创建文件树。我现在想扫描这些文件夹并将图像上传到Web服务器,但是我不确定如何扫描目录以查找图像。如果有人可以张贴一些示例代码,那将非常有帮助。
编辑 :我在嵌入式linux系统上运行它,不想使用boost
请参阅man ftw
以获取简单的“文件树遍历”。我也在fnmatch
这个例子中使用过。
#include <ftw.h>
#include <fnmatch.h>
static const char *filters[] = {
"*.jpg", "*.jpeg", "*.gif", "*.png"
};
static int callback(const char *fpath, const struct stat *sb, int typeflag) {
/* if it's a file */
if (typeflag == FTW_F) {
int i;
/* for each filter, */
for (i = 0; i < sizeof(filters) / sizeof(filters[0]); i++) {
/* if the filename matches the filter, */
if (fnmatch(filters[i], fpath, FNM_CASEFOLD) == 0) {
/* do something */
printf("found image: %s\n", fpath);
break;
}
}
}
/* tell ftw to continue */
return 0;
}
int main() {
ftw(".", callback, 16);
}
(甚至没有经过编译测试,但是您知道了。)
这比DIRENT
自己处理s和递归遍历要简单得多。
为了更好地控制遍历,还提供了fts
。在此示例中,点文件(名称以“。”开头的文件和目录)将被跳过,除非作为起点明确传递给程序。
#include <fts.h>
#include <string.h>
int main(int argc, char **argv) {
char *dot[] = {".", 0};
char **paths = argc > 1 ? argv + 1 : dot;
FTS *tree = fts_open(paths, FTS_NOCHDIR, 0);
if (!tree) {
perror("fts_open");
return 1;
}
FTSENT *node;
while ((node = fts_read(tree))) {
if (node->fts_level > 0 && node->fts_name[0] == '.')
fts_set(tree, node, FTS_SKIP);
else if (node->fts_info & FTS_F) {
printf("got file named %s at depth %d, "
"accessible via %s from the current directory "
"or via %s from the original starting directory\n",
node->fts_name, node->fts_level,
node->fts_accpath, node->fts_path);
/* if fts_open is not given FTS_NOCHDIR,
* fts may change the program's current working directory */
}
}
if (errno) {
perror("fts_read");
return 1;
}
if (fts_close(tree)) {
perror("fts_close");
return 1;
}
return 0;
}
同样,它既没有经过编译测试也没有运行测试,但我想我已经提到了。
问题内容: 我在删除空目录时遇到问题。这是我的代码: 参数是我要传递需要完成工作的目录的位置。该目录如下所示: 请注意,以上所有文件夹均为空。当我运行该脚本的文件夹,单独被删除!但是,文件夹,并不会被删除,即使它们是空文件夹。 编辑: 我得到的例外是: 我在哪里弄错了? 问题答案: 尝试:
本文向大家介绍Java使用递归复制文件夹及文件夹,包括了Java使用递归复制文件夹及文件夹的使用技巧和注意事项,需要的朋友参考一下 递归调用copyDir方法实现,查询源文件目录使用字节输入流写入字节数组,如果目标文件目录没有就创建目录,如果迭代出是文件夹使用字节输出流对拷文件,直至源文件目录没有内容。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍linux 下python多线程递归复制文件夹及文件夹中的文件,包括了linux 下python多线程递归复制文件夹及文件夹中的文件的使用技巧和注意事项,需要的朋友参考一下 本文是利用python 复制文件夹 刚开始写了一个普通的递归复制文件夹 然后想了想 觉得对io频繁的程序 threading 线程还比较友好 就写了个多线程版本的 最恶心人的地方就是路径 其他都还好吧
本文向大家介绍Lua中实现递归删除一个文件夹,包括了Lua中实现递归删除一个文件夹的使用技巧和注意事项,需要的朋友参考一下 在使用 quick-cocos2d-x 做项目热更新的时候,我需要建立临时文件夹以保存下载的更新包。在更新完成后,我需要删除这些临时文件和文件夹。 cocos2d-x 和 quick-cocos2d-x 都没有提供删除文件夹功能。我做了如下2个尝试: 1. 使用C++ 在 c
问题内容: 我有一台服务器,该服务器的各个文件夹,子文件夹和子子文件夹中都有很多文件。 我正在尝试制作一个search.php页面,该页面将用于在整个服务器中搜索特定文件。如果找到文件,则返回位置路径以显示下载链接。 这是我到目前为止的内容: 如果文件位于我的域名的根目录下,则脚本可以正常工作…现在,我试图找到一种方法来使其也扫描子文件夹和子文件夹,但是我被卡在了这里。 问题答案: 有两种方法。
问题内容: 如何用Java递归列出文件夹中的所有文件? 问题答案: 不确定要如何表示树?无论如何,这是一个使用递归扫描整个子树的示例。文件和目录是相同的。请注意,File.listFiles()对于非目录返回null。 Java 7提供了一些改进。例如,DirectoryStream一次提供一个结果- 调用者在执行操作之前不再需要等待所有I / O操作完成。这允许增量GUI更新,提前取消等。 请注