怎么样实现目录的反向读?

SunnyDay晴天 2009-07-04 05:44:57
linux下可以用readdir函数来读取目录,但是怎么样实现反向的读写目录呢?

一般情况下我们这样读目录:
...
DIR *dp = opendir("/root/sj/");
readdir(fp);
...
这是正向读取目录的,
如果用
curr_offset = telldir(dp),获取当前目录的偏移量,怎么样给定一个(curr_offset - N_offset)偏移量,
从而实现读取到上一次读过的?,达到反向读取的目目录的呢?
...全文
99 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
SunnyDay晴天 2009-07-09
  • 打赏
  • 举报
回复
要是目录下的文件全是MP3,那几千个也是有可能的,这时不就很浪费内存吗?

不过各位我现在已经找到一个更好的办法了
alan001 2009-07-07
  • 打赏
  • 举报
回复
up
michael_liuyong 2009-07-07
  • 打赏
  • 举报
回复

N_offset = telldir(dp_up); //全局变量记录上一级的偏移量
DIR *dp = opendir("/root/sj/");
readdir(dp);
curr_offset = telldir(dp);
Treazy 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 appletreesujie 的回复:]
谢谢楼上两位献策。
全部读出来后,当然可以,但是太浪费内存了;
设全局变量应该不行的,每次只能回退一项
[/Quote]

浪费内存?
动态申请完使用完后释放掉,这几个数据结构的内存小的可以忽略了
Wolf0403 2009-07-05
  • 打赏
  • 举报
回复
全部读取出来,然后反向使用(譬如全部读取到一个 vector 中,然后用 reverse_iterator 访问)如何?
SunnyDay晴天 2009-07-05
  • 打赏
  • 举报
回复
谢谢楼上两位献策。
全部读出来后,当然可以,但是太浪费内存了;
设全局变量应该不行的,每次只能回退一项
大前置 2009-07-04
  • 打赏
  • 举报
回复

N_offset = telldir(dp_up); //全局变量记录上一级的偏移量
DIR *dp = opendir("/root/sj/");
readdir(dp);
curr_offset = telldir(dp);


当然,你也可以,readdir完成,seekdir设置当前为"新位置开始读取"入口点

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧