static void metadata_add_container (struct ushare_t *ut, struct upnp_entry_t *entry, const char *container) { struct dirent **namelist; int n,i; if (!entry || !container) return; n = scandir (container, &namelist, 0, alphasort); if (n < 0) { perror ("scandir"); return; } for (i = 0; i < n; i++) { struct stat st; char *fullpath = NULL; if (namelist[i]->d_name[0] == '.') { free (namelist[i]); continue; } fullpath = (char *) malloc (strlen (container) + strlen (namelist[i]->d_name) + 2); sprintf (fullpath, "%s/%s", container, namelist[i]->d_name); log_verbose ("%s/n", fullpath); if (stat (fullpath, &st) < 0) { free (namelist[i]); free (fullpath); continue; } if (S_ISDIR (st.st_mode)) { struct upnp_entry_t *child = NULL; child = upnp_entry_new (ut, namelist[i]->d_name, fullpath, entry, 0, true); if (child) { metadata_add_container (ut, child, fullpath); upnp_entry_add_child (ut, entry, child); } } else metadata_add_file (ut, entry, fullpath, namelist[i]->d_name, &st); free (namelist[i]); free (fullpath); } free (namelist); }
通过scandir扫描container文件夹的文件并排序。
接下来对于每一个文件,看看是文件夹还是文件,如果是文件的话,加入列表,如果是文件夹的话,递归进入该文件夹执行相同的操作。
优享(UShare)[1]是浙江优诺肯科技有限公司(Unitcon Technology)基于自主研发的CRIS共享引擎(Cross-device Realtime Interactive Sharing Engine,跨设备实时交互共享引擎)创新研发的一款多屏互动领域的无线多屏分享产品,将智能手机,平板电脑和个人PC等智能设备的屏幕画面和多媒体文件无线分享到电视上。
本文向大家介绍spring缓存代码详解,包括了spring缓存代码详解的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是spring缓存的相关内容,具体介绍如下。 这篇文章是根据谷歌翻译大致修改出来的,由于原文不知道是什么语,所以可能导致翻译的有错误和不准确的地方,但是大致的方向感觉还是蛮不错的,所以在这里整理了一下,希望能够有所帮助。 高速缓存一直是一个非常需要这两个提高应用程序性能并降
本文向大家介绍shiro编码和加密代码详解,包括了shiro编码和加密代码详解的使用技巧和注意事项,需要的朋友参考一下 涉及到密码存储问题上,应该加密/生成密码摘要存储,而不是存储明文密码。比如之前的600w csdn账号泄露对用户可能造成很大损失,因此应加密/生成不可逆的摘要方式存储。 编码/解码 Shiro提供了base64和16进制字符串编码/解码的API支持,方便一些编码解码操作。Shi
本文向大家介绍java中的arrays.sort()代码详解,包括了java中的arrays.sort()代码详解的使用技巧和注意事项,需要的朋友参考一下 Arrays.sort(T[], Comparator < ? super T > c) 方法用于对象数组按用户自定义规则排序. 官方Java文档只是简要描述此方法的作用,并未进行详细的介绍,本文将深入解析此方法。 1. 简单示例 sort方法
本文向大家介绍mongodb driver使用代码详解,包括了mongodb driver使用代码详解的使用技巧和注意事项,需要的朋友参考一下 MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 0 前言 全是
本文向大家介绍Python3 Random模块代码详解,包括了Python3 Random模块代码详解的使用技巧和注意事项,需要的朋友参考一下 描述 random() 方法返回随机生成的一个实数,它在[0,1)范围内。 总结 以上就是本文关于Python3 Random模块代码详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站
本文向大家介绍Django中的Signal代码详解,包括了Django中的Signal代码详解的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是Django开发中的signal 的相关内容,具体如下。 前言 在web开发中, 你可能会遇到下面这种场景: 在用户完成某个操作后, 自动去执行一些后续的操作. 譬如用户完成修改密码后, 你要发送一份确认邮件. 当然可以把逻辑写在一起,但是有个问题
本文向大家介绍PHP中PCRE正则解析代码详解,包括了PHP中PCRE正则解析代码详解的使用技巧和注意事项,需要的朋友参考一下 一、前言 前面的博客里,有对字符集的解析。这里就不是字符集的事儿了,在PHP中很多函数的处理默认是unicode中的UTF-8编码格式。那么废话不多说,直接开始正题。 二、PHP函数mb_split解析 输出效果 此函数默认底层解析,以UTF-8的编码格式解析。以分隔符(