你可以认为 opendir后 打开的是一个文件夹,这个文件夹指向一个结构体
也就是返回的dp
而dp里面有一个链表,或者数组
每次readdir就把这个数据向前移动一位,并返回当前文件节点dirp
等这个链表 移动到尾部,就是返回NULL,这时就代表遍历结束了。
首先DIR
*opendir(const
char
*filename)
struct
dirent
*readdir(DIR
*dirp)
利用这两个函数获取你目录下
while(
(psDirent=readdir(pdir))
!=
NULL
)
{
//readdir返回的是目录下的名称,然后判断一下当前这个名字是子目录还是文件
struct
stat
st
stat(
pcFileName,
&st
)
if(
S_ISDIR(st.st_mode)
)
continue;//是目录继续循环
else
filecount++;//是文件就加1
}
从循环出来后创建文件名为file(filecount+1)的文件。
这个只是简单思路。最后别忘closedir。因为你的需求里,并未涉及文件创建个数的上限以及如果删掉某个文件后的需求。
通常,如果你目录下文件个数固定似乎更好办一些。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)